簡體   English   中英

為了確保更好的長期升級/可維護性,我應該使用哪個框架,CakePHP或CodeIgniter?

[英]Which framework should I use to ensure better longterm upgrade / maintainability, CakePHP or CodeIgniter?

我正在決定嘗試PHP的框架。 我將其范圍縮小到CakePHP和CodeIgniter。 對於使用或熟悉這兩種方法的任何人,我都有幾個問題:

  1. 我喜歡CakePHP默認情況下將大多數代碼保留在webroot之外的事實。 特別是因為我最終可能會為多個應用程序使用單個框架安裝。 我看到CodeIgniter也可以這樣做,但是您必須對其進行配置並移動一些內容。 該解決方法安全可靠嗎,還是事后才被黑客攻克?

  2. 哪個(如果不是同時)更容易升級和長期維護? 隨着框架的新版本(以及PHP本身)的出現。 我不想發現我的東西破損或過時。

編輯:

這是一篇非常古老的文章,但我認為我將使用最終使用Kohana的內容進行更新。

您應該嘗試使用這兩個框架一周左右,在這兩個框架中構建一些瑣碎的內容(例如博客或Wiki),然后查看您更喜歡使用哪種框架。 無論哪種方式對您來說最有意義都可能會通過升級和淘汰而使承受最長的時光。

CakePHP目前處於不穩定狀態,在推動發行1.2版(不向后兼容)時仍發現一些bug。 如果您現在需要堅如磐石的東西,我不建議使用它來構建關鍵的應用程序。 如果您可以等待一兩個月讓事情解決,那可能是一個有爭議的話題。

要解決您的問題:

1)Cake和CI的操作方式相同(iirc)。 在這方面,它們同樣安全,可靠和可靠。

2)一切都變了。 如果需要永久性的穩定性和向后兼容性的具體保證,請滾動自己的框架。 它沒有那么多,而且可以保證除非您希望沒有任何更改。

我已經在CakePHP上部署了多個應用程序,這是非常非常好的體驗。 您都不會出錯,因為兩者都是可靠的。

  1. 是非問題。

  2. CodeIgniter背后有一個贊助商,因此它絕對是一個長期的選擇。 而且,它更快。

  1. 這不是問題。 該應用程序有幾行內容,說明了核心和應用程序代碼的位置。 您只需要更改這些行。

  2. 您永遠都不會想到這一點。

PHP的狀態在這里是通配符。 一個應用程序(CI)構建為與PHP4兼容,另一個則需要PHP5。 如果您只需要處理僅支持舊版本PHP的Web主機,則需要使用CO。

另一個問題是單元測試。 如果您需要框架附帶測試,那么CI就不是可行的方法。

就個人而言,由於有公司的支持,我對CI感到滿意。 CI背后的公司正在從他們的努力中獲得真正的利潤。 盡管CI是免費的,但他們的付費產品(ExpressionEngine)最終將在CI上運行。 Zend框架甚至是Rails的誕生(最初是為Basecamp建造的)都可以這么說。

對上述注釋的一個小修正:兩者都與PHP4兼容,而不僅僅是CI。 另外,我認為擁有贊助商不會使CI或多或少可以升級或維護。 金錢至少不能解決這些問題。

我將CakePHP用於各種應用程序,到目前為止,我一直對此感到滿意。 1.2是對1.1的重大改進,盡管庫源代碼可能從RC3更改為Final,但我認為您編寫的任何代碼都不會過時。 我唯一的煩惱是《手冊》沒有應有的全面(我認為),並且我最終使用了很多API。 這里的權衡是,我現在非常了解幕后的代碼。 無論如何,我強烈推薦它。

另一方面,我從沒玩過CI,所以我不推薦 CI上使用CakePHP。 我將每一個都旋轉一下,看看哪個抓住了您。 無論您選擇哪種方式,都要從慣例和功能上研究地獄。 當我開始使用Cake時,我不經意地編寫了一些代碼,通過在控制器中設置一個變量來“自動地”執行Cake所做的事情。

嘗試后會看到,CodeIgniter非常靈活。 因此,如何維護您的應用程序將使您全神貫注。

我還使用同一安裝部署了多個應用程序。 我通常為CMS項目創建2個應用程序(一個用於管理員,一個用於前端)。

從CodeIgniter角度解決您的兩個問題(我不使用Cake):

1)默認情況下,CodeIgniter不會將自己保留在webroot之外,但可以通過一些非常簡單的更改來做到這一點。 我的CI教程系列的第一部分介紹了如何執行此操作,並逐步完成了新CI實例的設置。 一旦完成,CI的唯一需要放在webroot中的就是一個小的index.php引導文件。

2)我有一個最初是在CI 1.4.x中開發的應用程序,已成功遷移到1.5.x,然后是1.6.x。 對於每個新版本,CI開發人員都會提供詳細的升級說明,列出需要更換的內容,因此升級非常容易。

吉姆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM