2010-09-13 125 views
11

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

+1

它取决于框架;你们之间有哪两个被撕裂? – 2010-10-03 08:17:12

+2

使用一个MVC和/或ORM模式,并从另一个模板引擎,是的,我可以看到发生。但是除了Zend之外,大多数框架并没有真正发挥它们的作用/不是由真正独立的组件构成的。我会更倾向于使用_best fit_ framework,并尝试将我自己错过的功能集成到自己中,如果我认为功能足够有趣并且有时间正确地解决它,可能会将其提供回选择框架并记录它。 – Wrikken 2010-10-04 21:31:30

回答

3

是否有可能与两个framewoks创建CMS?

虽然可以使用组件从Zend Framework中其他框架/ CMS的内部 - 这可能是与其他组件库的情况下,但Zend的最模块化的一个,我知道 - 它通常不是一个好主意混合两个完整的框架。像MVC结构,URL路由,数据库层,单元测试,错误管理等

许多核心功能是通过自然不能被两个框架,同时没有大规模的摩擦担任。此外,当其中一个框架需要更新时,您可能会遇到问题。

我会建议挑选,涵盖大部分你所需要的框架,并尝试添加使用插件或自己修改缺少的功能。

7

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

1

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

的Zend Frameowrk更像一个图书馆,那么你可以挑选,并从中选择组件。 Symfony也有一些可以使用的可重用组件。

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

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

希望这会有所帮助。

2

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

由于它可以简单地ZF纳入到你的代码(and Symfony too)。

Symfony框架相比,它是根据前面的服务器环境,所以你不能用它像其他一些framewor的奴隶闭解。

1

大多数框架的可组合性是这样的,它最有可能给你所有的缺点,同时消除两者的大部分个体优点。

1

在我看来,似乎一个框架将作为核心 - 引导,MVC堆栈,路由 - 而另一个将用于提供特定的功能 - 例如表单或筛选类或与Web服务交互等。

尽管我比较喜欢Zend Framework的核心 - 其他所有的东西 - 它的使用意图架构认为使其他框架成为核心,并将ZF组件拉到需要它们的地方。

作为@Adrian笔记,很容易将ZF组件纳入主要由另一个框架构建的项目中,因为ZF的设计灵活性高。其他框架在这方面不太适应。

1

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

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

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

1

当然是可能的,我看不出什么毛病。例如,我在一个比较大的项目上使用了CakePHP和Zend,这是一种cms。用于核心(路由,MVC)的CakePHP和用于某些“模块”的Zend。主要用于PDF,电子邮件(smtp),FTP和CakePHP不擅长的其他一些。有了蛋糕,使用ZF组件相当容易,并且根本不感到冒犯。实际上,ZF被写为尽可能独立,以便您随时随地使用任何组件。然而,它不会以其他方式工作(使用ZF作为核心和Cake组件)。当然这是可能的,但一个真正的痛苦没有好处。所以ZF可以在几乎任何其他框架中使用,没有什么会是错的,imho。