1

我们正在为我们的组织计划一个新的 Intranet。有些部分就像一个CMS,还有一些定制的应用程序。

Symfony2 CMF 发行版看起来很适合构建 Intranet 的 CMS 部分,但其他部分,如 Doctrine、“普通”SQL 数据库等,对于 Intranet 的定制应用程序看起来更好。

因为我需要这个 Intranet 的通用授权和身份验证系统(针对 Active Directory),我想我会得到更好的结果,只在应用程序上构建。那么,我可以将 CMF 应用程序与普通应用程序混合使用,并且都使用相同的数据库(Oracle DB)吗?

4

3 回答 3

4

是的,您可以轻松地将 CMF 与其他捆绑包混合。例如,路由允许使用来自 CMF 的路由以及 yml 文件中定义的“静态”路由。此外,您还可以轻松地将 ORM 添加到 PHPPCR ODM 旁边。如果你在 PHPPCR 中使用 Doctrine DBAL 进行存储,你甚至可以使用 ORM 等重用相同的连接配置。

于 2015-02-06T14:59:08.653 回答
2

简而言之,是的,我在自己的 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 等捆绑软件可能会帮助您构建速度惊人但不够灵活的解决方案。一般来说,我最终没有使用它们中的大多数,如果使用,那么我主要采用我在自己的包中实现的一些接口(以确保将来与可能使用的其他包的兼容性)。

除了上述这些之外,我还创建了许多桥接设计模式提供者设计模式解决方案,以使一些捆绑包一起工作,调整它们的功能,或者简单地解耦。

于 2015-04-06T15:18:49.223 回答
1

在编程中,几乎一切皆有可能。但是想想 CMF 提供的限制(例如路由)。也许你应该考虑使用 Sonata 的 Standard Symfony?我认为 CMS 页面只是您系统的一小部分,而在标准 symfony 中实现它将占用整个项目的最小部分(和成本)。

于 2015-02-06T11:41:16.703 回答