将内容管理系统添加到现有 Zend Framework 应用程序
Posted
技术标签:
【中文标题】将内容管理系统添加到现有 Zend Framework 应用程序【英文标题】:Adding a Content Management System to an Existing Zend Framework Application 【发布时间】:2011-08-12 20:16:39 【问题描述】:我最近开始在一家公司工作,该公司的主要产品是基于 Zend 框架的应用程序,该应用程序由多个模块组成。计划是使用带有前端(默认)模块的内容管理系统,以便营销人员可以管理公共网站。
我目前正在评估可能的解决方案,并且一直想知道是否可以将基于 Zend 框架的 CMS(即 pimcore、concrete5、TomatoCMS)之一整合到现有应用程序中。是否有人这样做并实现了(或多或少)将其中一个系统无缝集成到现有 Zend Framework 应用程序中?
我可能不得不补充一点,前端模块不是“空的”。已经有一个相当广泛的注册流程(基于 Zend 表单),我猜 CMS 应该能够“围绕”它或其他东西。
我想另一种选择是推出我们自己的(可能基于 Digitalus),但如果有更好的解决方案,我宁愿不这样做。
有没有人将 CMS 集成到如上所述的现有 Zend Framework 应用程序中?任何意见将不胜感激。
谢谢!
【问题讨论】:
【参考方案1】:我不熟悉 pimcore 或 TomatoCMS,但我对 Concrete5 相当了解。尽管它确实利用了几个 Zend Framework 库(即缓存、本地化),但出于您所说的目的,我不认为它是“基于 Zend Framework 的 CMS”。它有自己的架构,并且在其中集成您现有的应用程序基本上意味着将站点的 CMS 部分设置为一个独立的独立系统(具有非常基本的集成,例如在 CMS 的主题内显示您的自定义应用程序页面的内容或共享登录名),或以“Concrete5 方式”重建您的应用程序(这取决于您的应用程序的复杂程度,这可能甚至没有意义,因为“Concrete5 方式”以信息内容页面为中心,除了内容编辑之外没有太多的用户交互)。
Concrete5 是一个很棒的系统,但它并没有真正设计成一个平台来构建非常自定义的应用程序。如果您的网站是 75% 的信息页面,并且管理该内容是该网站的主要目的,那么采用 Concrete5 路线可能是有意义的,但如果它主要是关于您已经创建的自定义功能,只需少量内容 -在管理信息页面方面,您可能最好使用非常轻量级的 CMS 库,而不是在 CMS 本身之上重新构建您的应用。
【讨论】:
非常感谢您的详细回答。该应用程序相当大(过去两年同事一直在研究它),因此重建它不是一种选择。我们已同意暂时将网站完全分开,并使用自定义布局使应用程序的公共部分看起来与基于 CMS 的网站相同。【参考方案2】:我也有同样的情况。我管理着一个使用 Zend 框架构建的相当大且复杂的网站,需要在 CMS 上进行分层,以允许营销人员在网站上进行更新、管理导航、页眉/页脚等。但是,在 CMS 上重新开始并不是一个选项,因为我们必须将所有 Zend Framework 代码重新分解为 CMS 语言。我们的时间也很紧迫,因此需要将网站按原样(如果可能)移至 CMS。
我倾向于表达引擎,但我不确定我正在尝试做的事情是否可行。目标是让 CMS 运行 Zend Framework 应用程序/网站。
你有没有想过自己的目标?
【讨论】:
是的,从那时起我们就一直在分离应用程序和网站。为 www.example.com 的网站使用功能齐全的 CMS,并让应用程序在 app.example.com 上运行。有一些缺点(一个普通的 SSL 证书不会做;布局/主题代码的重复),但是好的大于坏的,恕我直言。 太棒了,感谢您的验证。我的计划是保留我们的 Zend Framework 支持的 Web 应用程序,并在其旁边构建一个 CMS,以使营销人员能够对我们的前 50 个页面进行编辑。我们使用 Akamai 动态站点交付来处理所有缓存页面请求,因此也许我们可以利用 Akamai 将 Web 应用程序请求路由到类似 jobs.example.com 的内容,而“其余”请求将发送到位于 www.example 的 CMS。 com。这听起来可行吗?你是如何处理你端的流量检查和路由的?以上是关于将内容管理系统添加到现有 Zend Framework 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Zend_Dojo 表单元素动态添加到 zend_form?