Das Bereitstellen von Konfigurationen in Abhängigkeit von der Umgebung ist eine ziemlich häufige Aufgabe, und es gibt einige andere Möglichkeiten, dies zu handhaben.
Umgebungsvariablen
Falls die Umgebung es zulässt, können Sie Umgebungsvariablen verwenden. Sie können die DB-Konfiguration einfach über die DATABASE_URL bereitstellen Variable in Form einer DSN-Verbindungszeichenfolge wie
mysql://user:example@sqldat.com/production?encoding=utf8&timezone=UTC&cacheMetadata=true
Kochbuch> Konfiguration> Umgebungsvariablen
Zusätzliche Konfigurationsdateien
Eine weitere Möglichkeit besteht darin, separate/zusätzliche Konfigurationsdateien basierend auf der aktuellen Umgebung zu laden, sodass Sie nur die Dateien bereitstellen können, die tatsächlich für eine bestimmte Umgebung benötigt werden.
Configure::load('app', 'default', false);
// $enviroment needs to be validated /sanitzied in order to
// avoid loading arbitrary files from the config directory
Configure::load($enviroment, 'default', true);
Cookbook> Configuration> Loading Additional Konfigurationsdateien
Verbindungs-Aliasing
Und es gibt auch Verbindungs-Aliasing, CakePHP macht das automatisch in der Testumgebung. Angenommen, Sie haben einen default und eine production Konfiguration könnten Sie dann production aliasieren Verbindung als default in Ihrer Produktionsumgebung, sodass Ihr Code überall versucht, den default zu verwenden Verbindung, es wird tatsächlich die production verwendet eins.
\Cake\DataSource\ConnectionManager::alias('production', 'default');
API> \Cake\DataSource\ConnectionManager::alias()