qeephp和CI的優缺點
用qeephp做了幾個項目了,突然想學一個新的架構,感覺ci還不錯,不知道它們之間的優缺點,希望大家暢所欲言,有好的架構給推薦個也行。
------解決方案--------------------
CI比較簡單,上手快,中文文檔齊全,以下為CI的主要優點:
CodeIgniter 是什嗎?
CodeIgniter 是一個應用程式架構
CodeIgniter 是一個為用 PHP 編寫網路應用程式的人員提供的工具包。它的目標是實現讓你比從零開始編寫代碼更快速地開發項目,為此,CI 提供了一套豐富的類庫來滿足通常的任務需求,並且提供了一個簡單的介面和邏輯結構來調用這些庫。CodeIgniter 可以將需要完成的任務代碼量最小化,這樣你就可以把更多的精力放到項目的開發上了。
CodeIgniter 是免費的
CodeIgniter 是經過 Apache/BSD-style 開源許可授權的,只要你願意就可以使用它。閱讀 許可協議 可獲得更多的資訊。
CodeIgniter 在 PHP 4 上運行
CodeIgniter 的編寫完全相容 PHP 4。儘管 PHP 5 在物件導向處理方面更具優勢,我們本該利用此優勢來簡化我們(在 PHP4 下的)實現創造性解決方案的(例如:多繼承)工作,但是我們建立此架構時,PHP 5 並未被廣泛使用,這意味著(如果用 PHP 5來寫)我們將要放棄大部分的潛在使用者。主流作業系統供應商比如 REDHAT 非常緩慢得轉向對 PHP5 的支援,並且短期內他們不大可能會全面支援 PHP5。所以,我們認為用 PHP 5 來寫 CodeIgniter 不合 PHP 社區的最大利益。
註解: CodeIgniter 能夠在PHP5環境下運行。只是它沒有使用PHP5專屬的進階特徵。
CodeIgniter 是輕量級的
真正的輕量級。我們的核心系統只需要一些非常小的庫,這與那些需要更多資源的架構完全相反。額外的庫檔案只在請求的時候載入,依需求而定,所以核心系統是非常快而且輕的。
CodeIgniter 是快速的
速度非常快。你要找到一個比 CodeIgniter 表現更優的架構應該很難吧。
CodeIgniter 使用 M-V-C 模型
CodeIgniter 使用了模型(Model)- 視圖(View)- 控制器(Controllers)的方法,這樣可以更好地使表現層和邏輯層分離。這對項目的模板設計者來說是非常有用的,它最小化了模板中的程式碼量。我們在 MVC 各自的頁面中對此做了更多的介紹。
CodeIgniter 產生乾淨的 URL
CodeIgniter 產生的 URL 非常乾淨而且是對搜尋引擎友好化的。不同於標準的“字串查詢”方法,CodeIgniter使用了 segment-based 這樣的方法:
example.com/news/article/345
注意:index.php 檔案是被預設包含在 URL 中的,但是可以通過更改 .htaccess 檔案來改變這個設定。
CodeIgniter 功能強大
CodeIgniter 擁有全範圍的類庫,可以完成大多數通常需要的網路開發工作單位,包括: 讀取資料庫、寄送電子郵件、資料確認、儲存 session 、對圖片的操作,以及支援 XML-RPC 資料轉送等。
CodeIgniter 是可擴充的
這個系統可以非常簡單的通過外掛程式和 helper 類庫來進行擴充,或者也可以通過擴充類、系統鉤子來實現。
CodeIgniter 不需要模板引擎
雖然 CodeIgniter 確實 內建了一個可選的模板解析器程式,但不要求你必須使用模板。模板引擎完全與本地化PHP代碼的效能需求不符,使用模板引擎我們要學習其文法,這最低限度只比學PHP基礎要容易一點點。考慮以下PHP代碼:
再來對比模板引擎所使用的虛擬碼:
{foreach from=$addressbook item="name"}
- {$name}
{/foreach}
的確,例中模板引擎的代碼比較清晰,但這帶來一個效能問題,因為虛擬碼要先被轉換成PHP才能運行。我們的目標是效能最大化, 所以我們選擇不使用專用的模板引擎。
CodeIgniter 已徹底文檔化
程式員都喜歡寫代碼討厭寫文檔。當然我們也一樣,但是既然文檔和代碼本身一樣重要,我們就要完成它了。況且我們代碼資源極其乾淨而且方便注釋。
CodeIgniter 擁有一個友好的使用者社區
你可以在我們的 社區論壇 中看到一個成長中的積極活躍的使用者社區。
------解決方案--------------------
QeePHP裡資料模型比較死板,為了oo而oo,而不是為了資料庫查詢最佳化。
比如每次它都會查詢表結構.....
及其不喜歡
------解決方案--------------------
ci相容php4 , 中文文檔比較全。 在model層設計 比cakephp差點
------解決方案--------------------
因為它要有資料庫是映射,所以必須要有表結構!然後產生模型對象!
這和cakephp是一樣的!
但ci和 zendframe都不做這個,特別是zendframe!
它認為,資料庫模型不一定要做表映射!
相反,資料庫模型應基於商務邏輯!(這個更快)
與此相關的還有表單驗證有,有的放在模型類中,有的放在控制器方法中!
比如: zend的就在控制器方法!(這也是因為,有的驗證可能和資料庫不相關,或者關聯到多個表)
------解決方案--------------------
ci 上手快 功能全 但是不適合大型網站