【发布时间】:2015-08-28 00:00:13
【问题描述】:
假设我有几个网站共享大约 80% 的功能,包括路由策略、模板等。 我想对所有这些都使用相同的代码库,并有一个“DefaultSiteBundle”和几个“SiteABundle”、“SiteBBundle”使用捆绑继承覆盖或向 DefaultSiteBundle 添加功能。
这意味着,应该始终加载 DefaultSiteBundle,并且根据域名,有条件地加载 SiteABundle 或 SiteBBundle。
我的问题是,如何在不将所有 SiteBundles 添加到 app/config/routing.yml 的情况下管理路由?
【问题讨论】:
-
如果只是路由,你可以在你的路由中使用
hostname_pattern选项,但是如果你想拥有完全不同的应用程序,那么你可以使用multiple kernels -
由于您的问题是关于如何处理路由,我假设您已经知道如何根据主机名有条件地加载包。你是怎样做的?我问是因为您的主要问题的答案可能取决于此。
-
我使用 AppKernel 中的 registerBundles 方法有条件地加载包,基于“domain.name”环境变量。但是,仍然假设所有路由都是从 app/config/ 中配置的内容加载的routes.yml ,这是,我必须在那里明确添加所有“站点”捆绑包,即使我不打算全部加载它们。未注册捆绑包的路由会发生什么?嗯..我没有测试
标签: symfony inheritance routing routes bundle