2010-09-13 47 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。