Nasıl Symfony'de her uygulama için ayrı web dizini yaratabilirsiniz?

1 Cevap php

'Önuç' ve 'arka uç': Örneğin, ben iki uygulama var. Ben, '/ web / önyüz' 'önyüz' varlıkları görür ve '/ web / backend' tüm görüntü yolları değiştirmek gitmek zorunda kalmadan backend 'varlıklarını vermektedir ki benim / web dizini kurmak olmak istiyorum vb

1 Cevap

Symfony Documentation, her uygulamanın config.php yapıyor çalışması gerekir Gönderen [örnek uygulamalar gösteriyor / backend / config / config.php]

sfConfig::add(array(
  'sf_web_dir'      => SF_ROOT_DIR.'/web/backend',
  'sf_upload_dir'   => SF_ROOT_DIR.'/web/backend'.sfConfig::get('sf_upload_dir_name'),
));

Nedense, bu yöntem işe yaramaz. Eğer sfConfig içinde tanımlanan tüm değişkenler bir göz atın, size çalışma şeyler almak için sf_web_dir ve sf_upload_dir daha değiştirmek zorunda olduğunu fark edeceksiniz.

Bir seçenek elle her bir uygulamanın config.php içindeki web dizini işaret sfConfig içindeki tüm değişkenleri geçersiz olacaktır. Tüm değişkenlerin bir listesini görmek için, deneyin

<?php echo var_dump(sfConfig::getall()); ?>

Diğer seçenek (Bunu daha önce yaptık yolu) Apache yapılandırmasında yapmak olacaktır. Arkaplanı için sanal konak ayarları gibi bir şey olmazdı

<VirtualHost *>
  ServerName backend.dev
  DocumentRoot "PATH_TO_SYMFONY_PROJECT/web/backend"
  DireckarşıryIndex index.php
  Alias /sf /usr/local/lib/php/data/symfony/web/sf
  <Direckarşıry "/usr/local/lib/php/data/symfony/web/sf">
  AllowOverride All
  Allow from All
  </Direckarşıry>
  <Direckarşıry "PATH_TO_SYMFONY_PROJECT/web/backend">
    AllowOverride All
    Allow from All
  </Direckarşıry>
</VirtualHost>

Sonra size / web / backend [backend varsayılan ortamı ise ve muhtemelen index.php] backend_dev.php, backend.php kopyalamak gerekiyor ve bu dosyaların her biri, değişim olacak

define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/..'));

karşı

define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/../..'));

ve iyi olmalıdır. Ben bu yöntemi tercih, ancak sanal ana kurulum yoksa, bu seçeneği olmayabilir.