Config-Dateien
Directoryconfig
- config.yaml
- parameters.yaml
Directorycontao
- config.yaml
Directorydca
- tl_content.php
- tl_news.php
- tl_member.php
Directorylanguages
Directoryde
- default.php
- default.xlf
Directorysystem
Directoryconfig
- localconfig.php
Quellen:
trakked Blogbeitrag
config.yaml
Section titled “config.yaml”Pfad: config/config.yaml Einstellungen in der Contao-Doku
Theoretisch ist das die einzige Konfigurationsdatei in Contao. Da drinnen kann alles gemacht werden. Punkt.
Außer wir wollen versionieren … dann würden z.B. Datenbank-Zugangsdaten in der config.yaml plötzlich auf GitHub stehen und das wollen wir gar nicht (Git vergisst nicht!)
Daher schreiben wir sensible Daten in andere Dateien und referenzieren diese mit Platzhaltern in der config.yaml.
Die config.yaml wird nicht automatisch angelegt, das müssen wir bei Bedarf selbst machen.
config_prod.yaml und config_dev.yaml
Section titled “config_prod.yaml und config_dev.yaml”Contao lädt für die Produktionsumgebung automatisch die config_prod.yaml und für die Entwicklungsumgebung die config_dev.yaml. Fallback, falls diese nicht vorhanden sind, ist die config.yaml. So können je nach Umgebung gewisse Parameter angepasst werden.
Beispieleinträge
Section titled “Beispieleinträge”// Indexierung von geschützten Seiten aktivierencontao: search: index_protected: true// Zentrale Bildgrößen konfigurierencontao: image: sizes: header_image: width: 1920 height: 600 resizeMode: cropKonsolen-Befehle
Section titled “Konsolen-Befehle”// Standard-Konfiguration für Contao anzeigen:php vendor/bin/contao-console config:dump-reference contao// die aktuelle Konfiguration anzeigen:php vendor/bin/contao-console debug:config contaoparameters.yaml
Section titled “parameters.yaml”Pfad: config/parameters.yaml
Die parameters.yaml ist seit Contao 4.13 veraltet (funktioniert aber in Contao 5 immer noch). Hier wurden Datenbank-Zugangsdaten, SMTP-Daten, … etc. gespeichert (weshalb sie auch niemals ins Git wandern sollte). Sie wird durch die .env.local abgelöst.
.env und .env.local
Section titled “.env und .env.local”Pfad: /.env und /.env.local
Diese Dateien liegen direkt im Hauptverzeichnis. Bei der Installation mit dem Manager (ab Version 1.8) werden sie automatisch erzeugt und die Datenbankverbindung wird in der .env.local abgelegt.
Der Unterschied zwischen der parameters.yaml und der .env.local ist, dass die parameters.yaml nicht zur Laufzeit geändert werden kann. Nach einer Datenänderung muss immer der Prod-Cache gelöscht werden. Bei der .env.local ist das nicht mehr nötig. Daher kann der CM jetzt auf die DB-Zugangsdaten zugreifen.
Die .env-Dateien enthalten sogenannte Umgebungsvariablen.
Umgebungsvariablen
Section titled “Umgebungsvariablen”Umgebungsvariablen sind Variablen, die auf Betriebssystem-Ebene, pro Benutzer oder sogar pro Prozess definiert werden können. Das ist sehr praktisch, da die Contao-Installation damit für den Betrieb mit Containern vorbereitet wird. Dieser Standard ist plattformübergreifend.
Auf einem Shared Hosting können eigentlich keine echten Umgebungsvariablen gesetzt werden. Mit der .env-Datei liefert Contao aber eine Möglichkeit mit, Umgebungsvariablen zu definieren. Contao interpretiert diese so als wären sie echt.
.env vs. .env.local
Section titled “.env vs. .env.local”Die .env-Datei:
- wird ins Git Repository comitted und enthält keine echten Werte
- dient zur Dokumentation erforderlicher Umgebungsvariablen
- zeigt Beispielwerte und Struktur
Die .env.local-Datei:
- wird nicht ins Git Repository committed (und sollte daher in der
.gitignorestehen) - enthälte echte Werte, diese überschreiben die dokumentierten Platzhalter in der
.env - enthält sensible Daten wie Passwörter und API-Keys
- enthält entwickler-spezifische Einstellungen
Was steht alles in der .env.local?
Section titled “Was steht alles in der .env.local?”APP_SECRET
Section titled “APP_SECRET”APP_SECRET wird für viele Anwendungsfälle benutzt und sollte nicht ohne weiteres verändert werden. Also einfach in Ruhe lassen.
- CSFR-Token
- URL-Signing
- diverse Erweiterungen
- “Remember Me” Cookies
- u.v.m.
DATABASE_URL und MAILER_DSN
Section titled “DATABASE_URL und MAILER_DSN”Informationen zur Datenbankverbindung und zum E-Mail-Versand
DATABASE_URL generieren
MAILER_DSN generieren
DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name"MAILER_DSN="smtp://user:password@smtp.example.com:587"Eigene Umgebungsvariablen definieren
Section titled “Eigene Umgebungsvariablen definieren”In der config.yaml können beliebige eigene Variablen referenziert werden, die z.B. in der .env definiert werden:
MYADMIN_EMAIL=admin@demo.decontao: localconfig: adminEmail: '%env(MYADMIN_EMAIL)%'.yaml vs. .yml
Section titled “.yaml vs. .yml”.yml ist die alte Schreibweise, die verwendet wurde, als Dateierweiterungen nur drei Buchstaben haben durften. Wir verwenden heute .yaml.