php - Symfony,动态路由

标签 php symfony symfony-routing

我有一个 symfony 项目,其中有多个皮肤/模板,它们有自己的路线,有人知道正确的设置吗?

  • 每个皮肤/模板都是自己的 bundle ,因为它不仅是皮肤和 Assets ,还可能是某些皮肤中可能存在的服务。
  • 主机名决定皮肤。
  • 使用自定义 RouteLoader 加载目标包的 Route.yml。

自定义 RouteLoader 完成这项工作 - 但生成的路由正在被缓存,据我所知,没有办法阻止路由缓存。

一些建议是:

  • 创建/{dynamic} 路由,因此手动形成路由..但我不想丢弃路由器的那部分功能,或重构整个项目..
  • 在路由中添加模板标识符前缀。这需要我加载所有的route.yml文件,这是不可能的,因为它们共享路径。

有人吗?我真的不能同时进行多个项目,皮肤数量大约是20-30~。

这种设置的原因是因为它是内容即服务..服务的目标,多个客户端使用该项目作为平台,并且他们的设置决定使用哪些模板。

最佳答案

听起来您想根据主机名动态加载包?由于缓存的原因,Symfony 2 不会发生这种情况。尤其是服务。

您最好的选择是为每个皮肤设置一个应用程序,然后执行一些 url majic 来执行所需的 app.php 文件。显然,既然您已经为每种皮肤定义了一个 bundle ,那么数量是有限的,因此拥有多个应用程序应该不会太多或成为负担。

您或许能够解决模板问题。您仍然需要加载所有皮肤包,但您可以调整模板名称或路径,并且可能会得到一些工作。

但是服务呢?除非您开始将主机名附加到服务 ID,否则我看不到任何解决办法。

关于php - Symfony,动态路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569677/

相关文章:

symfony - 使用@Method注解有什么意义

php - Symfony2 将路由定义为 Controller 中的注释

php - 图像不闪烁

php - 如何在 symfony 中插入具有 ManyToOne 关系的 user_id?

symfony2 phpStorm 自动完成代码、注释、最佳实践

symfony - 保持我的 symfony2 包解耦

php - Symfony 3 路由允许在占位符值中使用连字符/破折号

php - 如果存在则删除该记录,否则插入

php - 如何在mysql中按季度对日期进行分组并在php中检索

PHP/HTML 表单显示