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:[email protected]/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()