Symfony und MM 2.x Tipps
Für die Arbeit mit MM 2.x unter Symfony einige Tipps für den Start oder als „Merkzettel“.
Die Aufrufe auf der Konsole gehen immer vom Installationsverzeichnis von Contao aus - also da, wo die composer.json liegt, d.h. vor allen Aufrufen erstmal in das Verzeichnis wechseln:
cd /var/www/mein-contao
Anschließend sollte man sicher gehen, dass auf der Konsole die selbe PHP-Version läuft, wie für die Webseite (siehe im Contao-Manager bei Tools > PHPINFO). Auf der Konsole kann man das abfragen mit:
php -v
Ist die PHP-Version nicht gleich, muss man jeweils mit einem Pfad zum PHP-Binary die Befehle aufrufen. Den Pfad erhlt man z.B. beim Systemcheck des Contao-Managers mit angezeigt oder aus der Doku/Wiki des Providers.
/usr/bin/php82 -v
Composer-Update
Mit folgendem Befehl wird ein Update eingeleitet:
/usr/bin/php82 web/contao-manager.phar.php composer update -v
oder mit Speicher- und Laufzeitzuweisung
/usr/bin/php82 -d memory_limit=-1 -d max_execution_time=900 public/contao-manager.phar.php composer update -v
bzw. bei älteren Instalationen mit dem Pfad web
/usr/bin/php82 -d memory_limit=-1 -d max_execution_time=900 web/contao-manager.phar.php composer update -v
Mit dem Parameter „-v“ bzw. „-vv“ oder „-vvv“ erhalt man verschiedene Detailstufen der Ausgabe. Mit dem zusätzlichen Parameter „–dry-run“ wird ein „Trockenlauf“ als Test durchegführt.
Nach einem Update ggf. das Installtool aufrufen, damit Datenbankänderungen durchgeführt werden (wird gern vergessen :D).
Die composer.phar sollte regelmäßig aktualisiert werden - dazu folgenden Befehl aufrufen:
/usr/bin/php82 web/contao-manager.phar.php self-update
Die Migration der Datenbank kann wie folgt angestoßen werden - siehe Schemamanager
/usr/bin/php82 vendor/bin/contao-console contao:migrate
Paketversion ermitteln
Bei Fehlermeldungen oder Nachfragen bei Entwicklern ist die Auskunft über die installierte Version einer Erweiterung wichtig. Das kann man über den Paketnamen ermitteln z.B. für den DC_General
/usr/bin/php82 public/contao-manager.phar.php composer show | grep dc-general
Mit
/usr/bin/php82 public/contao-manager.phar.php composer show
werden alle Pakete ausgegeben.
Bei einer Entwicklungsversion z. B. bei Bezug aus dem „EAP“ gibt es noch keine Versionsnummer - man kann aber
die Nummer des aktuellen Commits aus der composer.lock
ermitteln. Man kann in der Datei z. B. nach
"name": "metamodels/core"
suchen. In dem Knoten reference
steht die Commit-Nummer - die Angabe ersten
acht Zeichen reicht z. B. 8da81418
.
Cache leeren
Bei Anpassungen den Contao-Cache leeren:
„Soft“ (Empfehlung):
/usr/bin/php82 vendor/bin/contao-console cache:clear --env=prod
/usr/bin/php82 vendor/bin/contao-console cache:warmup
oder die „harte Tour“:
rm -rf var/cache/{dev,prod}
und löscht „alles“ aus dev und prod.
Symfony-Toolbar
Die Symfony-Toolbar erleichtert die Anzeige von Templatewerten und das Debugging während der Erstellung eines Projektes mit MetaModels.
Den Debugmodus kann man aus dem Backend oder Contao-Manager aktivieren oder dauerhaft über
einen Eintrag Environment-Datei .env
bzw. .env.local
mit dem Eintrag
APP_ENV=dev
Die dauerhafte Aktivierung sollte nur lokal oder bei anderweitig geschützten Seiten erfolgen.
Im Debugmodus wird auch das Caching von Contao unterbunden und man muss den Cache nicht so häufig leeren - bedeutet aber auch, dass die Seite ggf. „anders aussieht“. Zudem wird die Debug-Toolbar von Symfony im Browser eingeblendet.
Muss im Quelltext mal was debugt werden, dann die Debug-Funktion debug()
von Symfony verwenden
- die Ausgabe erfolgt dann in der Debug-Toolbar und kann über das „Fadenkreuz-Icon“ eingesehen
werden.
Für das Debugging der Templates gibt es hier eine Beschreibung: Debug Templates
Möchte man die SQL-Aufrufe z.B. einer Filterregel „Eigenes SQL“ untersuchen, so kann man auf der Debug-Toolbar auf „Doctrine“ gehen - dort werden alle SQL-Aufrufe aufgelistet. Über die Suche im Browser und einigen Bestandteilen wie der Tabellenname o.ä. ist das Query meist schnell gefunden. Die Toolbar bietet den SQL-Code in verschiedenen Formatierungen an, so dass das Query einfach in phpMyAdmin übernommen und getestet werden kann.
Abschalten der Warnings im Debugmode
Möchte man sich eine Debugausgabe ansehen kann es vorkommen, dass durch eine Warning-Meldung die Anzeige
nicht zustande kommt. Die Warning-Meldung kann z. B. aus einem Theme oder einer anderen Erweiterung kommen
und mit MetaModels nichts weiter zu tun haben. Damit man dennoch seine gewünschte Anzeige über die
Symfony-Toolbar angezeigt bekommt, kann man die Warnings unterdrücken. Dazu in der config.yml
folgenden
Eintrag einfügen:
1 // config/config.yml
2 framework:
3 profiler:
4 only_exceptions: true
5 # oder
6 contao:
7 error_level: 8181