25

我一直在寻找一种简单的方法来获取在 Symfony 中运行 Symfony 的机器的 ServerName(以便我的应用程序在具有不同 ServerName 的主机上使用时进行调整),但我找不到。我在 app.yml 中创建了一个变量并获取它,但我仍然想知道是否没有更简单的方法可以做到这一点。你是怎么做到的?我在不同的项目中使用 Symfony 1.2 和 1.4。

4

2 回答 2

57

我想我找到了些东西 :

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

这似乎有效......当然只有在有请求的情况下才会有效,因此它不是通用的。因此,这将无法使用 CLI。

于 2010-06-11T09:16:06.600 回答
2

不是很好,但我$_SERVER["SERVER_NAME"]在我的前端控制器文件中使用,并使用它来确定我正在激活的环境:

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

我很想看看正确的方法:-)

于 2010-06-11T08:29:39.333 回答