2010-03-30 4 views
3

J'ai un projet construit sur Symfony 1.4 et il a plusieurs environnements - chaque développeur a sa propre copie installée sur sa machine locale et a donc son propre environnement.Symfony 1.4: Configuration de l'environnement pour la CLI

Je suis capable de définir dynamiquement l'environnement dans index.php, mais comment puis-je faire cela pour les tâches CLI?

je pouvais bien sûr utiliser --env = MonEnvironnement sur toutes les tâches, mais je préférerais qu'il soit en mesure d'utiliser la même logique que j'ai dans index.php

+0

Comment allez-vous déterminerez l'environnement pour le développeur dans index.php? Nom d'hôte? GET paramètre? pouvez-vous nous montrer du code? – richsage

+0

Il recherche l'existence du fichier environment.cfg dans le répertoire de configuration principal. Le contenu de ce fichier spécifie l'environnement en tant que chaîne. L'avantage est que ce fichier n'est pas validé par SVN, donc chaque développeur peut spécifier sa propre configuration sans affecter la configuration dans svn. – SlappyTheFish

Répondre

0

Vous pourriez faire quelque chose de semblable à cela dans votre tâche peut-être:

class MyTask extends sfBaseTask 
{ 
    protected function configure() 
    { 
    // Env config file 
    $file = sfConfig::get("sf_config_dir") . DIRECTORY_SEPARATOR . "environment.cfg"; 
    $env = (file_exists($file) ? file_get_contents($file) : "prod"); 

    $this->addOptions(array(
     new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', $env), 
    } 
} 

Ce qui précède devrait fonctionner; il est par défaut à l'environnement 'prod' si le fichier environment.cfg n'existe pas. Cela suppose également que vous avez juste l'environnement dans le fichier (par exemple 'prod', 'dev', 'slappythefish', etc.).

+0

Merci, cela devrait fonctionner - mais existe-t-il une façon globale de le faire, de sorte que lorsque je tape symfony propel: insert-sql-diff, il détermine automatiquement quel environnement utiliser? – SlappyTheFish

2

sfContext::getInstance()->getConfiguration()->getEnvironment()

Questions connexes