2011-06-17 23 views
5

'daki yapılandırma içinde BaseUrl'yi dinamik olarak ayarlama Symfony2'nin yapılandırmasında, herhangi bir istek olmadığı için temel URL'ye referans olmadığını biliyorum; Uygulama ya ya da bir web sunucusu içinde çalışabilir ve bu nedenle istek üzerine güvenemeyiz. Ancak yine de, stil sayfalarını veya javascript temel URL'sini (jQueryHelperBundle, örneğin yerel URL'yi belirleyerek jquery yerel yolunuzu belirleyebileceğiniz) isteyen bir yapılandırma yapıyorum. şey ki bunu değiştirmek zorunda kalmadan, dinamik yapılandırma için bir üs url ayarlamak için bir yol yoktur, geçerli:Symfony2

  • , geliştirilmekte olan herhangi bir dizinden hareket www/MyProject veya www/foo olmadığını olabilir uygulama/myproject,
  • ayarlarını değiştirmek zorunda kalmadan, prodüksiyon aynı şekilde çalışacaktır, çünkü apache ile temel url yeniden yazılır (virtualhosting yaygındır, burada baseurl web dizinine '/' olarak eşlenir).

Bu temel URL bilgisini almanın bir yolu var mı? $_SERVER['DOCUMENT_ROOT'] arasındaki farkı kullanarak çekirdek kök dir, böyle bir temel url'yi algılamanın bir yolu olabilir mi? Ancak, sanal dizinin URL’yi web dizinine/dizine eklemesi nedir? Temel url kodlaması, projeyi geliştirmenin yapıldığı yere tamamıyla birleştirir ve etrafındaki projeyi hareket ettirmek, her zaman temel url'yi değiştirmeyi gerektirir, bu da can sıkıcıdır.

Yani, Symfony2'nin yapılandırması içindeki temel URL'yi, isteğe bağlı olarak çevreye göre dinamik olarak algılamanın bir yolu var mı?

cevap

0

Bir hizmette yapmak zorunda, bu yüzden daha sonra kendi hizmetinde yönlendirici hizmeti enjekte ve:

$baseUrl = $router->getContext()->getHost(); 

Ama bir hack gibi daha bunu gördüğünü Symfony2'nin çerçevenin gerçek fikstürü. Örneğin Denetleyici'deki kolayca mutlak url (symfony kitaptan örnek) oluşturabilir:

$router->generate('blog_show', array('slug' => 'my-blog-post'), true); 

Ve dal şablonunda

, sen

Ben bu yardımı umut {{url}} fonksiyonu var

+1

Hmm, ancak bunu yapılandırmada nasıl kullanabilirim? Bazen bazı konfigürasyonlar, herhangi bir talep olmadan CLI'den çalıştırılsa bile, temel url'yi, çevreye, proje yerine veya sanal sunucuya göre değişebilen bir temel url kullanmaktadır. CLI'dan çalıştırırken temel url yanlış olsa da önemli değil. Sorduğumda ne demek istediğimi anlamaz mısın? –

+0

Yapılandırmada? Üzgünüm, sorunuzu yanlış anladım. Yapılandırma dinamik bir dosya olmadığı için bunun imkansız olduğunu düşünüyorum. – Reuven