我們的Symfony應用程序目前是一個應用程序,它很快就需要能夠讓多個站點指向相同的Symfony核心,並且基於當前所在的站點具有略微不同的功能。特性在Symfony中切換
作爲一個例子,我們可能會在一個網站上顯示一條橫幅,而不是另一個網站。另一個例子是將在不同網站上啓用/禁用的付款選項。或者另一個是不同網站上的表單上的不同字段。
有沒有人有過這樣構造Symfony應用程序的經驗?
我們的Symfony應用程序目前是一個應用程序,它很快就需要能夠讓多個站點指向相同的Symfony核心,並且基於當前所在的站點具有略微不同的功能。特性在Symfony中切換
作爲一個例子,我們可能會在一個網站上顯示一條橫幅,而不是另一個網站。另一個例子是將在不同網站上啓用/禁用的付款選項。或者另一個是不同網站上的表單上的不同字段。
有沒有人有過這樣構造Symfony應用程序的經驗?
如果你想「主題」你的應用程序,你可以使用LiipThemeBundle,它真的很好。對於激活/禁用功能,您還可以使用FeatureToggleBundle軟件包(最近安靜)。
你也可以實現這樣一個基本的幫手:
/**
* Check if a feature is activated.
*
* @param string $feature Name of the feature
*
* @throws AccessDeniedHttpException
*/
protected function checkFeature($feature)
{
$features = $this->container->getParameter('app.features')
if (!$features[$feature]) {
throw new AccessDeniedHttpException();
}
}
...
$this->checkFeature('contact_form');
有了這樣的配置:
app.features:
contact_form: false
耶士那symfony的
symfony中的優勢使用與路由和控制連接的內核勒勒,然後迴應正在創建。
如果你想在symfony中使用多個應用程序,你可以很容易地做到這一點,這是symfony的一個優點。爲此,你只需要添加一些路由,一切都將自動完成。
您可以使用symfony表單類添加表單並將它們附加到具有必需字段的其他頁面,而無需再次創建整個表單。 如果你想添加或刪除一些功能開/關,你可以通過app
類或通過創建不同的控制器。
您必須知道,使用內核事件偵聽器可以完成大部分工作。
例如,您可以在'CoreBundle'中使用kernel.request
事件將用戶引用到不同的模板,具體取決於他所在的域名。
因此,在您的情況下,網站可能很容易在網站上顯示橫幅,但不會顯示另一個橫幅。
你可以看看這篇文章,解釋它: