DDEV
DDEV ist ein Open-Source-Tool, mit dem sich in Minuten lokale PHP-Entwicklungsumgebungen einrichten lassen.
DDEV erstellt eine config.yaml, die alle Einstellungen für dein Projekt enthält. Diese kann mit GIT versioniert werden und unterstützt so kollaboratives Arbeiten in Teams oder mit Freelancern.
Info
Um DDEV nutzen zu können, muss Docker auf deinem System installiert sein. Falls das noch nicht der Fall ist, kannst du dir die DDEV Dokumentation für mehr Informationen zur Installation dieser Programme durchlesen.
DDEV installieren
DDEV ist für alle Plattformen verfügbar, für die Installation deiner Plattform schau bitte in der DDEV Dokumentation nach.
Projekt erstellen
Tipp
Die Contao Demo Webseite wird für die aktuell unterstützten Contao-Versionen gepflegt und kann optional installiert werden. Über den Contao Manager kannst du dazu, bei einer Erstinstalltion, einfach diese Option auswählen.
Öffne die Konsole deiner Wahl, erstelle das gewünschte Verzeichnis und wechsle danach in ebendieses. Der Verzeichnisname spiegelt den späteren Projekt Hostnamen. Du kannst dies jedoch zusätzlich konfigurieren.
mkdir contao && cd contaoDDEV-Konfiguration anlegen mit:
ddev config --project-type=php --docroot=public --webserver-type=apache-fpm --php-version=8.2Contao 5.6 installieren:
ddev composer create-project contao/managed-edition:5.6Nach der Installation müssen die Datenbankzugangsdaten in die .env.local eingetragen werden. In diesem Zug richten wir auch direkt
Mailpit ein.
ddev dotenv set .env.local --database-url=mysql://db:db@db:3306/db --mailer-dsn=smtp://localhost:1025Im Anschluss die Datenbank anlegen:
ddev exec contao-console contao:migrate --no-interactionBackend-User anlegen (Administrator):
ddev exec contao-console contao:user:create --username=admin --name=Administrator --email=admin@example.com --language=de --password=Password123 --adminDie Contao Administration im Browser aufrufen:
ddev launch contaoÖffne die Konsole deiner Wahl, erstelle das gewünschte Verzeichnis und wechsle danach in ebendieses. Der Verzeichnisname spiegelt den späteren Projekt Hostnamen. Du kannst dies jedoch zusätzlich konfigurieren.
mkdir contao && cd contaoDDEV-Konfiguration anlegen mit:
ddev config --project-type=php --docroot=public --webserver-type=apache-fpm --php-version=8.2Nach der Installation müssen die Datenbankzugangsdaten in die .env.local eingetragen werden. In diesem Zug richten wir auch direkt
Mailpit ein.
ddev dotenv set .env.local --database-url=mysql://db:db@db:3306/db --mailer-dsn=smtp://localhost:1025Den Contao Manager herunterladen, umbenennen (.php) und in das public Verzeichnis kopieren. Du kannst dazu auch wget oder curl nutzen.
ddev start
ddev exec "wget -O public/contao-manager.phar.php https://download.contao.org/contao-manager/stable/contao-manager.phar"Den Contao Manager aufrufen und den Anweisungen folgen.
ddev launch contao-manager.phar.phpZusatz Informationen
Weitere Informationen bez. der Verwaltung von Projekten findest du hier.
ddev startstartet das Projekt,ddev stopbeendet es. Stelle vorher sicher, dass du in den Projektordner gewechselt hast.ddev poweroffkann aus jedem Verzeichnis heraus alle gestarteten Projekte/Container stoppen.Mit
ddev sshwechselst du in die Shell des Containers und kannst auf der Konsole arbeiten. DieddevBinary steht im Container nicht zur Verfügung, also erst mitexitauf die Host-Konsole wechseln.ddev describegibt eine Übersicht der Services, die im Projekt zur Verfügung stehen und wie du sie erreichst.ddev xdebug onstartet XDebug. Informationen zum IDE-Setup
Info
Falls du als Windows Anwender die »Git Bash« als Konsole benutzt, kann es, abhängig von deiner »Git für Windows« Konfiguration, notwendig sein das Kommando winpty voran zu stellen (z. B.: winpty ddev ssh).
Angepasste PHP-Konfiguration
Mit DDEV können zusätzliche PHP-Konfigurationen für ein Projekt bereitgestellt werden. Du kannst eine beliebige Anzahl von .ini Dateien im Verzeichnis .ddev/php/ hinzufügen. Änderungen erfordern einen Neustart mit ddev restart. Weitere Informationen in der DDEV-Dokumentation.
Eine Beispieldatei in .ddev/php/my-php.ini könnte wie folgt aussehen:
[PHP]
memory_limit = -1Datenbank Tools
Wenn du beispielsweise einen Datenbank-Client wie Adminer oder phpMyAdmin verwenden möchtest, kannst du diese als
Addon installieren.
Beispiel: Adminer
ddev add-on get ddev/ddev-adminer && ddev restartBeispiel: phpMyAdmin
ddev add-on get ddev/ddev-phpmyadmin && ddev restartMit ddev describe erfährst du, wie du das jeweilige Datenbank Tool erreichst.
DDEV Cronjob einrichten
ab 5.5 Die Backend-Suche kann durch die Einrichtung des Contao Cronjob-Frameworks aktiviert werden.
Dazu in DDEV zunächst die Cron-Erweiterung installieren:
ddev add-on get ddev/ddev-cronInfo
Wenn du bereits länger mit DDEV entwickelt hast, kann es sein, dass du eine Fehlermeldung bei der Ausführung von ddev add-on get ddev/ddev-cron erhältst. Die Ursache dafür ist, dass das add-on erst ab der ddev-Version 1.24 unterstützt wird. Du musst also zuerst ddev updaten. Siehe zum Update auch https://docs.ddev.com/en/stable/users/install/ddev-upgrade/.
Erstelle dann die Datei /.ddev/web-build/contao.cron mit folgendem Inhalt:
* * * * * php /var/www/html/vendor/bin/contao-console contao:cronStarte anschließend das DDEV-Projekt/ den Container neu:
ddev restartDer Contao-Cronjob wird minütlich ausgeführt. Bei der erstmaligen Einrichtung kann es eventuell 1-2 Minuten dauern, bevor die Suchleiste im Backend verfügbar ist.
Konfigurieren eines lokalen Pfades als ein shared repository für alle deine Bundles innerhalb des ddev containers
Wenn du einen Pfad konfigurieren möchtest, in dem alle deine Test-Bundles für deine lokalen Projekte abgelegt sind, so dass du diesen Pfad auch in deiner composer.json verwenden kannst, so ist das wie folgt möglich:
Erstelle eine Datei im Ordner ./ddev innerhalb deines Projekt-Ordners. Verwende beispielsweise den Dateinamen docker-compose.bundles.yaml.
Der Inhalt der Datei kann wie folgt aussehen (passe die Pfade an deine Anforderungen an):
services:
web:
volumes:
- /home/$USER/repository:/home/$USER/repository:rwStarte den Container mit ddev restart neu.
Jetzt kannst du die im angegbenen Ordner abgelegten Bundles wie gewohnt als pfad-repository in deiner composer.json verwenden.
"repositories": [
{
"type": "path",
"url": "~/repository/my-local-bundle"
}
],Info
Wenn der Contao Manager die so konfigurierten Repositories nicht finden kann, so hilft es, die Option Composer Resolver Cloud im Contao Manager zu deaktivieren.