Att tillhandahålla konfiguration beroende på miljön är en ganska vanlig uppgift, och det finns en hel del andra sätt att hantera detta.
Miljövariabler
Om miljön tillåter det kan du använda miljövariabler. Du kan enkelt tillhandahålla DB-konfiguration via DATABASE_URL
variabel i form av en DSN-anslutningssträng som
mysql://user:[email protected]/production?encoding=utf8&timezone=UTC&cacheMetadata=true
Kokbok> Konfiguration> Miljövariabler
Ytterligare konfigurationsfiler
Ett annat alternativ är att ladda separata/ytterligare konfigurationsfiler baserat på den aktuella miljön, så att du bara kan distribuera de filer som faktiskt krävs för en specifik miljö.
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);
Kokbok> Konfiguration> Laddar ytterligare Konfigurationsfiler
Anslutningsaliasing
Och det finns också anslutningsaliasing, CakePHP gör det automatiskt i testmiljön. Säg att du har en default
och en production
konfiuration, kan du sedan alias production
anslutning som default
i din produktionsmiljö, så att din kod överallt försöker använda default
anslutning kommer den faktiskt att använda production
en.
\Cake\DataSource\ConnectionManager::alias('production', 'default');
API> \Cake\DataSource\ConnectionManager::alias()