Je suis un développeur RoR, mais je travaille actuellement avec CakePHP pour un projet où je ne peux pas modifier le serveur. Dans mon serveur de production Rails, Passenger est configuré pour utiliser automatiquement l'environnement "Production", remplaçant la configuration de l'application locale. Je voudrais configurer mon application cakephp pour faire la même chose. Comment faites-vous habituellement cela avec CakePHP? Avez-vous mis en place un analyseur de domaine, ou vous gardez simplement core.php et database.php hors du contrôle de version? Merci à l'avance, DavideComment configurer CakePHP pour détecter mes environnements de développement/production ou est-ce que je garde les fichiers de configuration hors contrôle de version?
Répondre
Si je comprends bien la question, cela pourrait être la chose dont vous avez besoin:
Automatically choose database connections in CakePHP
En bref, passer outre le constructeur DATABASE_CONFIG
:
class DATABASE_CONFIG
{
//initalize variable as null
var $default=null;
//set up connection details to use in Live production server
var $prod =
array(
// ...
);
// and details to use on your local machine for testing and development
var $dev =
array(
// ...
);
function __construct()
{
if(isset($_SERVER['SERVER_NAME'])){
switch($_SERVER['SERVER_NAME']){
case 'digbiz.localhost':
$this->default = $this->dev;
break;
case 'digbiz.example.com':
$this->default = $this->prod;
break;
}
}
else // we are likely baking, use our local db
{
$this->default = $this->dev;
}
}
}
Vous pouvez simplement créer un fichier supplémentaire qui détient la seule Configure::write('debug', 0)
* directive, l'importation que dans le fichier core.php et le garder hors de contrôle de version. Le meilleur des deux mondes.
* ou tout ce que vous devez changer
Pour la base de données, vous pouvez configurer les paramètres locaux et de connexion de production, puis créer l'application fichier/app_model.php et inclure la ligne:
class AppModel extends Model
{
var $useDbConfig = 'production';
}
Ensuite, vous pouvez créer le fichier app/app_controller.php et analyser les domaines et lui dire quel dbconfig utiliser et d'autres paramètres core.php en utilisant Configure :: write.
Il pourrait être préférable de définir la prod/dev dans bootstrap.php. De cette façon, vous pouvez réutiliser la constante à travers l'application.
bootstrap.php:
define('IS_PROD',(isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'cubismedia.com') ? true : false);
database.php:
function __construct() {
if (IS_PROD) {
$this->default = $this->prod;
} else {
$this->default = $this->dev;
}
}
//development
public $dev = array(
//db settings
);
//production
public $prod = array(
//db settings
);
C'est fondamentalement ce que je fais, mais je le fais un niveau dans core.php. Je mets ici une constante appelée "APPLICATION_ENV" pour pouvoir le référencer ailleurs dans le code et charger un fichier de configuration spécifique à l'environnement où je définis des constantes (les valeurs de config fonctionneraient aussi) pour des choses comme l'hôte de base de données, les touches api, etc. –
- 1. Comment configurer les règles de réécriture de nginx pour que CakePHP fonctionne sur CentOS?
- 2. Conserver les paramètres d'exécution dans les environnements dans le contrôle de version?
- 3. Fichiers semi-modifiables (fichiers de configuration, par exemple) et contrôle de version - meilleures pratiques?
- 4. Que sont les méthodes/classes de garde?
- 5. Comment configurer automatiquement les informations de version dans Delphi?
- 6. Contrôle de version des fichiers MDF
- 7. Comment obtenir des variables entièrement développées hors de configurer?
- 8. Comment puis-je configurer Spring BeanFactory avec plusieurs fichiers de configuration de bean?
- 9. Fichiers de configuration pour les objets GAC
- 10. CakePHP contrôle de cache pour les fichiers d'actifs (images, CSS, etc)
- 11. Contrôle de version/gestion de la configuration pour les PBX Avaya?
- 12. Contrôle de version pour BusinessObjects
- 13. Comment configurer récursivement svn status pour cacher les fichiers ignorés?
- 14. Comment détecter la version linguistique de Windows
- 15. Comment gérez-vous plusieurs fichiers web.config pour plusieurs environnements?
- 16. Comment puis-je configurer logrotate pour ne pas supprimer mes fichiers journaux après la rotation?
- 17. Meilleure façon de basculer la configuration entre les environnements de développement/UAT/Prod dans ASP.NET?
- 18. Détecter la configuration de l'affichage "Mode Clone"
- 19. Comment configurer OpenAds dans CakePHP?
- 20. Comment fonctionne le contrôle de version?
- 21. Comment puis-je extraire les alias pour les fichiers de configuration shell?
- 22. Meilleur contrôle de version pour le développeur seul
- 23. Gérer les fichiers de configuration avec WiX
- 24. Algorithme de contrôle de version
- 25. différents fichiers de configuration pour différents serveurs
- 26. Comment puis-je détecter les accès aux fichiers sous Linux?
- 27. Comment configurer CakePHP ACL pour 3 niveaux d'utilisateurs?
- 28. Comment détecter des fichiers nouveaux ou modifiés
- 29. Décompresser les fichiers OpenOffice pour un meilleur stockage dans le contrôle de version
- 30. Contrôle de version pour les binaires avec horodatage
parfait, exactement waht je cherchais – nutsmuggler
cet article, vous Glad aidé :) s'il vous plaît laisser des commentaires – Eddie
lien ne fonctionne plus. Dans le futur, c'est une bonne idée de citer les détails importants d'un lien au cas où cela se produirait. – BMitch