提供替代路由方法的最佳方式

时间:2011-06-26 20:48:06

标签: routing content-management-system symfony

我希望添加将数据库存储页面解析为symfony 2.0项目的功能。然而,我很好奇何时是挂钩此功能的最佳时机。

根据Symfony 2生命周期,要求路由器生成控制器(可调用)。有没有办法或任何地方我可以有效地创建自己的路由器,可以选择和生产具有不同配置选项的不同控制器?

理想情况下,我想允许此路由机制也传递它无法实现的路由。通过这种方式,symfony可以像404行为一样继续正常运行......

1 个答案:

答案 0 :(得分:4)

是。您可以实现一个实现Symfony\Component\Routing\RouterInterface的类 - 读取Symfony\Bundle\FrameworkBundle\Routing中的类以查看实现的示例。

你可能不得不做一些很好的挖掘来完成它,因为没有关于自定义路由器的大量文档,而且(可能)是一个不熟悉的代码库,但我见过的所有Symfony2代码都遵循更多或者更少相同的模式,并且更容易知道在哪里查看以及您需要做什么来快速覆盖/实现自定义零件。代码非常干净,这是一个巨大的优势。

我不知道实施所需的完全的详细信息,也许知道更多细节的其他人可以扩展。但是,我知道这并非不可能,并且在大多数情况下,如果您实现满足Symfony\Component\Whatever {{1}}中所见的接口要求的类,您将能够实现您想要的。