Het bieden van configuratie afhankelijk van de omgeving is een vrij veel voorkomende taak, en er zijn nogal wat andere manieren om dit aan te pakken.
Omgevingsvariabelen
Als de omgeving het toelaat, kunt u omgevingsvariabelen gebruiken. U kunt eenvoudig DB-configuratie opgeven via de DATABASE_URL
variabele in de vorm van een DSN-verbindingsreeks zoals
mysql://user:[email protected]/production?encoding=utf8&timezone=UTC&cacheMetadata=true
Kookboek> Configuratie> Omgevingsvariabelen
Extra configuratiebestanden
Een andere optie is om afzonderlijke/extra configuratiebestanden te laden op basis van de huidige omgeving, zodat u alleen die bestanden kunt implementeren die daadwerkelijk nodig zijn voor een specifieke omgeving.
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);
Kookboek> Configuratie> Extra laden Configuratiebestanden
Verbindingsaliasing
En er is ook verbindingsaliasing, CakePHP doet dat automatisch in de testomgeving. Stel dat u een default
. heeft en een production
configuratie, dan zou je de production
kunnen aliasen verbinding als default
in uw productieomgeving, zodat uw code overal de default
. probeert te gebruiken verbinding, zal het daadwerkelijk de production
. gebruiken een.
\Cake\DataSource\ConnectionManager::alias('production', 'default');
API> \Cake\DataSource\ConnectionManager::alias()