web-dev-qa-db-fra.com

Existe-t-il un moyen simple d'obtenir le ServerName dans Symfony?

Je cherchais un moyen facile d'obtenir le ServerName de la machine sur laquelle Symfony s'exécute dans Symfony (afin que mon application s'adapte lorsqu'elle est utilisée sur un hôte avec un autre ServerName), mais je n'ai pas pu en trouver un. J'ai créé une variable dans app.yml et je la récupère, mais je me demande toujours s'il n'y a pas de moyen plus simple de le faire. Comment faites-vous cela? J'utilise Symfony 1.2 et 1.4 sur différents projets.

25
greg0ire

Je pense avoir trouvé quelque chose :

$this->getRequest()->getHost()

Cela semble fonctionner ... cela ne fonctionnera que s'il y a une demande bien sûr, donc ce n'est pas universel.

51
greg0ire

Pas très sympa, mais j'utilise $_SERVER["SERVER_NAME"] dans mon fichier de contrôleur frontal, et utilisez-le pour déterminer l'environnement que j'active:

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

Je serais intéressé de voir l'approche appropriée :-)

2
richsage