简而言之,是的,我在自己的 Symfony2 项目中这样做。我结合了 SF-SE 和 SF-CMF 捆绑包。
事实上,使用 Symfony2 非常简单(这只是选择最合适的Bundles的问题;SF 是一个非常解耦的框架,这就是为什么我暂时不打算迁移到任何其他解决方案的原因),但我我想分享一些我这样做的经验。实际上,在决定如何结合两个“世界”时要考虑的一个最重要的问题是:
作曲家。
经过一番询问,我发现由于 Symfony CMF(在某种程度上)基于 Symfony SE,而不是相反,最好从后者开始,因为它包含最核心的功能(尽管我也做了相反的事情)方式,而不是推荐)。因此,只需获取 SF-SE 的 composer.json,从那里查看您需要的包,然后查看 SF-CMF 的 composer.json 中的差异。您应该最终得到最合适的捆绑包。
这些捆绑包中要查找的基本功能是:
- 模型- Doctrine ORM、PHPCR-ODM 或两者兼有 - 如果仍然不确定,请随时发表评论,我将在这里进一步分享我的经验。
- 路由- 这里的主要问题是您实际需要多灵活的路由?如果不确定,我会使用标准的 SF 路由器,然后可能会在仍处于开发阶段时替换它。
- 开箱即用的 CMS 功能- CreateBundle、MenuBundle 或 MediaBundle 等捆绑软件可能会帮助您构建速度惊人但不够灵活的解决方案。一般来说,我最终没有使用它们中的大多数,如果使用,那么我主要采用我在自己的包中实现的一些接口(以确保将来与可能使用的其他包的兼容性)。
除了上述这些之外,我还创建了许多桥接设计模式和提供者设计模式解决方案,以使一些捆绑包一起工作,调整它们的功能,或者简单地解耦。