Fournir une configuration en fonction de l'environnement est une tâche assez courante, et il existe de nombreuses autres façons de gérer cela.
Variables d'environnement
Si l'environnement le permet, vous pouvez utiliser des variables d'environnement. Vous pouvez facilement fournir la configuration de la base de données via DATABASE_URL variable sous la forme d'une chaîne de connexion DSN comme
mysql://user:example@sqldat.com/production?encoding=utf8&timezone=UTC&cacheMetadata=true
Livre de recettes > Configuration > Variables d'environnement
Fichiers de configuration supplémentaires
Une autre option consiste à charger des fichiers de configuration séparés/supplémentaires en fonction de l'environnement actuel, de sorte que vous ne puissiez déployer que les fichiers réellement requis pour un environnement spécifique.
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);
Livre de recettes> Configuration> Chargement supplémentaire Fichiers de configuration
Création d'alias de connexion
Et il y a aussi l'aliasing de connexion, CakePHP le fait automatiquement dans l'environnement de test. Supposons que vous ayez un default et une production configuration, vous pourriez alors aliaser le production connexion comme default dans votre environnement de production, de sorte que partout où votre code essaie d'utiliser le default connexion, il utilisera en fait le production un.
\Cake\DataSource\ConnectionManager::alias('production', 'default');
API > \Cake\DataSource\ConnectionManager : :alias()