Ich arbeite mit CakePHP v3 und möchte die Anwendung in zwei verschiedenen Umgebungen installieren, eine für die Entwicklung und eine für die Produktionsanwendung. Beide Installationen sollten aus genau denselben Dateien (und Dateiinhalten) bestehen, also könnte ich 'git' oder 'svn' verwenden, um die Anwendung einfach zu implementieren.Wie CakePHP 3 wählen Datenbankverbindung durch Apache Umgebungsvariable
Wenn beide Umgebungen auf demselben Computer gehostet werden, brauche ich andere Datenbankeinstellungen (damit das Entwicklungsumgebung eine eigene "Test" DB verwendet). Ich dachte daran, zwei 'Datenquellen' in app.php
zu konfigurieren, die 'Standard' für die Produktion und eine 'Entwicklung'.
Aber wie kann ich zwischen beiden Quellen wechseln?
Um genauer zu sein: Derzeit definiere ich die folgende Umgebungsvariable in meinem Apache Config für die Entwicklungsumgebung:
SetEnv CAKEPHP_DEBUG 1
Dann änderte ich die Definition von ‚debug‘ in der app.php
-Datei wie folgt:
'debug' => (bool)getenv('CAKEPHP_DEBUG'),
Dies aktiviert DEBUG-Modus nur auf dem Entwicklungscomputer. Jetzt möchte ich auch die Datenbankkonfiguration auf die gleiche einfache Weise ändern.
(Ich fand bereits einige Lösungen für cakephp v2, aber alle von ihnen sind ziemlich alt, und ich bin nicht sicher, was der beste Weg ist es in CakePHP v3 zu tun.)
Scheint zu arbeiten, danke!Allerdings würde ich lieber die DB-Konfiguration in App.php statt AppController.php setzen. –
Ich habe bearbeitet, werfen Sie einen Blick – arilia
Danke für das Update! Der ternäre Operator funktioniert perfekt! Die Lösung mit 'defaultConnectionName 'funktioniert nicht: wenn ich die Dokumente richtig lese, muss diese Methode in jeder * Table-Klasse überschrieben werden und ich möchte den Code nicht so oft duplizieren ... –