2013-03-21 73 views
3

我知道我可以在我的app/config/config.yml設置枝條變量,但是我想在每捆級別設置變量(例如:Bundle/Resources/config/??.yml)。Symfony2的捆綁特定枝杈配置/變量

例如我想在我的頁面的頁腳中包含一個包版本標識符。我嘗試將樹枝配置放入我的捆綁包'services.yml,但Symfony無法解析配置。

我該如何做到這一點?

回答

1

我不確定如何在您的示例中實現特定於包的配置。捆綁包中的配置往往會被導入到主要的配置文件中,這些配置文件現在是特定於環境的,而不是捆綁特定的。

但是,對於您的示例,我只需製作一個樹枝擴展,它將返回您正在使用的軟件包的名稱。這樣,您可以在模板中隨時隨地使用它。您可以從請求中獲取控制器的完整命名路由,然後使用preg匹配來獲取Bundle名稱。像下面的東西應該工作:

public function getBundleName() 
{ 
    $pattern = "#([a-zA-Z]*)Bundle#"; 
    $matches = array(); 
    preg_match($pattern, $this->container->get('request')->get('_controller'), $matches); 
    return $matches[1]; 
} 

在這個例子中$this->container已經在構造函數中被設置爲容器的一個實例。如果您使用其他方法獲取控制器,則相應地進行替換。