我们正在为我们的组织规划一个新的Intranet。有些部分就像CMS,还有一些定制的应用程序。
Symfony2 CMF发行版可以很好地构建内部网的CMS部分,但其他部分如Doctrine," normal"对于Intranet的自定义应用程序,SQL数据库等看起来更好。
因为我需要这个内部网(针对Active Directory)的通用授权和身份验证系统,所以我认为只有在应用程序上才能获得更好的结果。那么,我可以将CMF应用程序与普通应用程序混合使用,并且都使用相同的数据库(Oracle DB)吗?
答案 0 :(得分:4)
是的,您可以轻松地将CMF与其他捆绑包混合使用。例如,路由允许使用来自CMF的两个路由以及"静态" yml文件中定义的路由。您还可以轻松地在PHPCR ODM旁边添加ORM。如果您在PHPCR中使用Doctrine DBAL进行存储,您甚至可以将相同的连接配置重用于ORM等。
答案 1 :(得分:2)
简而言之是的,我在自己的Symfony2项目中执行此操作。我结合了SF-SE和SF-CMF捆绑包。
事实上,使用Symfony2它非常简单(这只是选择最合适的 Bundles 的问题; SF是一个非常分离的框架,这就是为什么我不打算迁移到任何暂时的其他解决方案),但我想分享我的一些经验。实际上,要考虑如何结合两个“世界”的一个最重要的问题是:
<强>作曲者。强>
在一些问题之后我发现,既然Symfony CMF(在某种程度上)基于Symfony SE,而不是相反,那么最好从后者开始,因为它包含最核心的功能(尽管我也这样做了)相反的方式,而不是推荐)。所以,只需要使用SF-SE的composer.json,看看你需要的包,然后看看SF-CMF的composer.json中的差异。你应该得到最合适的捆绑包。
这些捆绑包的基本功能是:
除了上述内容之外,我还创建了许多Bridge Design Pattern和Provider Design Pattern解决方案,以便将一些捆绑包协同工作,调整功能,或者简单地解耦。
答案 2 :(得分:1)
在编程中几乎所有事情都是可能的。但请考虑CMF提供的限制(例如,路由)。 也许你应该考虑使用Sonata标准Symfony?我认为CMS页面只是你系统的一小部分,在标准symfony中实现它将占用整个项目的最小部分(和成本)。