一个CMS在2个不同的框架上?

时间:2010-09-13 04:16:45

标签: php zend-framework frameworks content-management-system

我不确定这是否可行,但是假设您想要构建一个CMS,但是您在两个框架之间徘徊,因为每个框架都有一些您喜欢的功能。是否可以使用两个框架创建CMS?这种方法是否有优点或缺点?

8 个答案:

答案 0 :(得分:7)

严格讲述Zend Framework(ZF)我会说是的。编写ZF组件以使其尽可能独立于其他组件。我想说将ZF库集成到Cake,Symfony或Codeigniter等其他框架中并不是很困难(实际上可能很常见)。

答案 1 :(得分:3)

  

是否可以使用两个framewok创建CMS?

虽然可以在其他框架/ CMS中使用Zend Framework中的组件 - 这也可能是其他组件库的情况,但Zend是我所知道的最模块化的组件 - 混合两个通常不是一个好主意完整的框架。

MVC结构,URL路由,数据库层,单元测试,错误管理等许多中心功能本质上不能同时由两个框架提供服务而不会产生大量摩擦。此外,当其中一个框架需要更新时,您可能会遇到问题。

我建议选择涵盖大部分内容的框架,并尝试使用插件或自己的​​修改添加缺少的功能。

答案 2 :(得分:2)

你的问题太抽象了。 例如,Zend Framework更像是一个特定功能库,可以随时包含在您的代码库中,然后是一些封闭的开发环境,例如Symfony框架。

由于它可以将ZF简单地包含在您的代码库中(and Symfony too)。

Symfony Framework与之相比是封闭式解决方案,具体取决于前端服务器环境,因此您不能像其他一些framewor的奴隶一样使用它。

答案 3 :(得分:1)

这真的取决于你喜欢哪些事情......

Zend Frameowrk更像是一个库,因此您可以从中挑选组件。 Symfony还有一些可以使用的可重用组件。

真的,你可以做任何事情......这取决于你想做多少工作,以及你有多么愿意修改框架代码。注意:大多数其他PHP框架并不像Zend Framework那样灵活(下一步可能是Symfony)。

这听起来很乱,所以我建议反对它,除非你以我上面描述的方式使用它。将ZF或Symfony组件拖入其他框架很容易,但不是相反。

希望这有帮助。

答案 4 :(得分:1)

大多数框架的可组合性最有可能为您提供两者的所有缺点,同时消除两者的大部分优势。

答案 5 :(得分:1)

在我看来,一个框架将作为核心 - 自举,MVC堆栈,路由 - 而另一个将用于提取特定功能 - 如表格类或过滤或与Web服务交互等。

尽管我更喜欢Zend Framework的核心 - 以及其他大多数东西 - 它的随意使用架构主张将其他框架作为核心,并在需要它们的地方引入ZF组件。

正如@Adrian指出的那样,将ZF组件引入主要基于另一个框架构建的项目很容易,因为ZF在设计时考虑到了这种灵活性。其他框架在这方面不太适应。

答案 6 :(得分:1)

你可以做到。大多数现代框架(Zend,symfony,flow)都能够使用其他框架的一部分。 Symfony 2使用Zend Logger,flow3使用sfYaml ...可以交换一些组件。

但是,imho,你应该坚持使用一个框架作为核心,并且仅使用第二个相对独立的子系统。适配器和Facade设计模式可以帮助您将它们混合在一起 - 某些组件/ clases需要在非本机环境中使用之前进行一些包装。

进一步阅读:http://www.symfony-project.org/book/1_2/17-Extending-Symfony#chapter_17_integrating_with_other_framework_s_components

答案 7 :(得分:1)

当然有可能,我没有看到它的问题。例如,我在一个相对较大的项目中使用CakePHP和Zend,这是一种cms。 CakePHP用于核心(Routing,MVC)和Zend用于某些“模块”。主要用于PDF,电子邮件(smtp),FTP和CakePHP不擅长的其他一些。使用Cake,使用ZF组件相当容易,并且完全没有感觉到hacky。

事实上,ZF被编写为尽可能独立,因此您可以随时随地使用任何组件。然而,它不会反过来(使用ZF作为核心,以及Cake组件)。当然这是可能的,但真正的痛苦没有任何好处。所以ZF可以在几乎任何其他框架中使用,并且没有任何问题,imho。