2010-06-11 17 views
19

Symfony'nin Symfony'de çalıştığı makinenin ServerName'sini almanın kolay bir yolunu aradım (böylece, farklı bir SunucuAdı ile bir sunucuda kullanıldığında benim uygulama adapte olur), ancak bulamadım. App.yml dosyasında bir değişken oluşturdum ve onu getirdim, ancak bunu yapmanın daha kolay bir yolu olup olmadığını merak ediyorum. Bunu nasıl yapıyorsunuz? Farklı projelerde Symfony 1.2 ve 1.4 kullanıyorum.Symfony'de ServerName'i almanın kolay bir yolu var mı?

+2

gethostname() işlevini kullanamaz mısınız? http://php.net/manual/en/function.gethostname.php – mamoo

+0

Üzgünüm, aslında hostname istemiyorum, ama ServerName (yazarımı düzenledim) – greg0ire

cevap

39

ben bir şey buldum Elbette bir talep, bu yüzden evrensel değil.

+1

Bir meslektaşım bana güvenmememiz gerektiğini söyledi. Bu, çünkü birçok risk var. YML dosyasındaki ayarın en iyi çözüm olduğunu düşünüyor ... – greg0ire

+1

Riskleri ayrıntılı olarak açıklayabilir misiniz? :-) – Flukey

+2

Böyle bir sisteme güvenmek istemediğiniz iki durum var: - apache kullanmıyorsanız (örneğin bir cronjob üzerinden posta gönderirken) - birden fazla sunucunuz olduğunda ancak Sitenizi yalnızca bir tanesini kullanarak satın almak. – greg0ire

2

Değil çok güzel, ama benim ön kontrolör dosyasında $_SERVER["SERVER_NAME"] kullanıyorum ve aktive ediyorum çevreyi belirlemek için kullanabilirsiniz:

$env = "prod"; 
if (preg_match("/qahost\.tld$/", $_SERVER["SERVER_NAME"])) 
{ 
    $env = "qa"; 
} 
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', $env, false); 
sfContext::createInstance($configuration)->dispatch(); 

Ben uygun yaklaşımı görmek ilgi duyarım:

Bu iş gibi görünüyor
$this->getRequest()->getHost() 

... buna sadece orada çalışır: -)