Symfony 1.4: Programatically CLI için ortamı ayarlamak

3 Cevap php

Ben Symfony 1.4 üzerine inşa edilmiş bir proje varsa ve çoklu ortamları var - her geliştirici kendi yerel makinede yüklü kendi kopyasına sahip olan ve bu nedenle kendi ortamı vardır.

Ben dinamik index.php ortamı ayarlamak mümkün duyuyorum, ama ben CLI görevler için bu nasıl yapabilirim?

Tüm görevleri üzerinde env = myenvironment, ama ben index.php gibi aynı mantığı kullanmak mümkün tercih ediyorum - Ben tabii ki kullanım olabilir

3 Cevap

Bu soru manzaralı bir sürü sahip olduğunu görmek, bu yüzden sadece referans için ben ile geldi çözüm ilanıyla.

Sonunda web ve CLI hem erişim için bir çözüm geldi, bu yüzden her yükleme Subversion şey etkilemeden kullanmak için hangi ortam belirleyebilirsiniz:

http://www.4pmp.com/2010/10/programmatically-set-environment-for-symfony-project/

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

Sen belki görev buna benzer bir şey yapabilirsiniz:

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),
  }
}

Yukarıdaki çalışması gerekir; 'eşya' bir ortamda it varsayılan environment.cfg dosya mevcut değilse. Bu aynı zamanda dosyada sadece çevreyi (örn. 'eşya', 'dev', 'slappythefish' vb) sahip olduğunu varsayar.