Szukałem łatwego sposobu na uzyskanie nazwy ServerName komputera, na którym Symfony działa w Symfony (tak, że moja aplikacja dostosowuje się, gdy jest używana na hoście o innej nazwie ServerName), ale nie mogłem go znaleźć. Stworzyłem zmienną w app.yml i ją pobrałem, ale wciąż zastanawiam się, czy nie ma prostszego sposobu na zrobienie tego. Jak się masz? Używam Symfony 1.2 i 1.4 w różnych projektach.Czy istnieje łatwy sposób na uzyskanie nazwy ServerName w Symfony?
Odpowiedz
Chyba znalazłem coś:
$this->getRequest()->getHost()
to wydaje się działać ... to będzie działać tylko tam to oczywiście prośba, więc nie jest uniwersalna.
Kolega właśnie powiedział mi, że nie powinniśmy polegać na to, ponieważ istnieje wiele zagrożeń. Uważa, że ustawienie w pliku YML jest najlepszym rozwiązaniem ... – greg0ire
Czy mógłbyś rozwinąć ryzyko? :-) – Flukey
Istnieją dwie sytuacje, w których nie chcesz polegać na takim systemie: - gdy nie używasz Apache (podczas wysyłania wiadomości na przykład przez cronjob) - gdy masz kilka serwerów, ale chcesz promować swoją stronę kupując, używając tylko jednego z nich. – greg0ire
nie bardzo miły, ale używam $_SERVER["SERVER_NAME"]
w moim przednim pliku sterownika, i użyć jej do określenia środowiska Ja aktywujący:
$env = "prod";
if (preg_match("/qahost\.tld$/", $_SERVER["SERVER_NAME"]))
{
$env = "qa";
}
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', $env, false);
sfContext::createInstance($configuration)->dispatch();
byłbym zainteresowany, aby zobaczyć podejście prawidłowe: -)
Nie możesz użyć gethostname()? http://php.net/manual/en/function.gethostname.php – mamoo
Niestety, nie chcę nazwy hosta, ale nazwa serwera (redagowałem mój wpis). – greg0ire