Umgebungsvariablen in Contao: die Dotenv

von Dennis Erdmann

Wer schon lange mit Contao arbeitet, kennt das: Es gibt mittlerweile sehr viele Dateien, in denen Einstellungen für Contao gespeichert werden können.

Während selbst das Contao-5-Backend immer noch die localconfig.php nutzt, um Einstellungen wie die Zeitzone oder den Standard-Besitzer zu speichern, findest du Datenbank-Zugangsdaten eher in der parameters.yml, während du SMTP-Accounts für den Formularversand (gerade bei mehreren Accounts) eher in der config.yml konfigurierst.

Dazu kommt ein weiterer Ort, den wir nutzen, um z. B. Datenbank- und SMTP-Zugangsdaten zu speichern: die .env bzw. .env.local, die mittlerweile in vielen Systemen zur zentralen Verwaltung von Umgebungsvariablen eingesetzt wird.

Sie ersetzt bei uns die parameters.yml (die ursprünglich für die Datenbank, den Mail-Versand und den Secret-Key gedacht war) und enthält darüber hinaus z. B. den Betriebsmodus (APP_ENV), das Installtool-Passwort und die Admin-E-Mail-Adresse, die dann (teilweise) an die config.yml übergeben werden.

Ein Beispiel, wie das aussehen kann, findest du im Nutshell Starterkit: die .env.example in Verbindung mit der config.yml.

Drei Vorteile

  1. Wenn wir zwei oder mehr Umgebungen haben — zum Beispiel eine Stage (zur Prüfung und Abnahme neuer Funktionen) und eine Prod-Umgebung —, können wir alle wesentlichen Einstellungen in einer Datei pflegen.
  2. Die Kombination aus .env und .env.local bietet die Möglichkeit, Zugangsdaten aus dem Git-Repository herauszuhalten. Das gilt auch für lokale Installationen, wenn wir im Team an Projekten arbeiten.
  3. Die Dotenv wird nicht gecached, d. h. alle Änderungen wirken sich unmittelbar nach dem Speichern aus (was allerdings auch ein Nachteil sein kann).

Der Haken

Die Dotenv kann nicht mit Sonderzeichen umgehen, die man gerade bei Passwörtern gerne einsetzt. In diesem Fall muss das Passwort vorher durch einen URL-Encoder laufen, bevor du es verwenden kannst.

Mehr über den Einsatz der Dotenv in Contao findest du in der Contao-Dokumentation zu Umgebungsvariablen.

  • contao
  • dotenv
  • konfiguration
  • umgebungsvariablen

Zurück zur Übersicht