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ı?
cevap
ben bir şey buldum Elbette bir talep, bu yüzden evrensel değil.
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
Riskleri ayrıntılı olarak açıklayabilir misiniz? :-) – Flukey
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
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: -)
gethostname() işlevini kullanamaz mısınız? http://php.net/manual/en/function.gethostname.php – mamoo
Üzgünüm, aslında hostname istemiyorum, ama ServerName (yazarımı düzenledim) – greg0ire