
CakePHP 開發團隊祝福每個人新年快樂!在進入程式開發的第三年,回顧一下已經完成的事情;一年前, Cake 1.2 開發版本推出,開發團隊持續努力讓新功能穩定,也提供一個成長中的開發平台。開發團隊的目的是提供最簡單的程式架構,這個目的即將完成,開發團隊對於能夠分享這個成果給所有人感到驕傲,儘管過程波折不斷。
今年開發團隊願與您分享 CakePHP 1.2 Beta,開發團隊認為這是目前最好的版本;新功能讓使用 Cake 成為一種樂趣,經過了一段時間的開發後,開發團隊認為這些功能已經趨於成熟,他們一直在實用性與擴充性之間找尋平衡點。當然,這跟 1.1 版有很多的差異,但是許多在 1.1 版開發的程式碼應該都能在 1.2 版運行,在必要的地方程式會提供警告,而必須捨棄的部份開發團隊也將它細分後提供優雅的解決方案,讓升級 1.2 版不需要太多重大的改變,大部分的改變只需要藉由錯誤訊息的提示進行搜尋與置換即可。
部份 1.2 版的新功能也許有些朋友已經熟知,對於還沒時間試用 Cake 1.2 的朋友,下面有個簡單的介紹:
Router 的改進包含了在陣列為基礎的網址中使用逆向路徑、parseExtensions 能夠處理多種內容格式、mapResources 可以處理 RESTful automagic、有取名的參數使用預設格式為 "name:value" 。
建立與維護表單變得更加容易,包含處理多筆資料與複雜的資料結構、Automagic REST 處理與獨立處理 GET 、 POST 類型資料,表單元件能夠辨識您的 model 。
安全性的加強包含了更能夠避免 CSRF(Cross Site Request Forgery,跨網站請求的偽造)與 HTTP 認證。
Email元件可以透過內容與版面樣板處理 html 與純文字格式信件,或是直接寄送;它也許不像是個全功能的元件,但是它能夠處理附加檔案、 html與純文字訊息應該能夠滿足大部分的需求。
Cookie 元件用來在用戶端儲存持續性資料。
Behaviors 讓 model 的功能可以被擴充,透過簡單且實用的介面就可以封裝,預設提供了 Tree 與 Acl。
"with" 關鍵字讓您可以動態加入 model 關聯,而且讓它如同一般 model 一樣存取。
Validation 大幅延伸了常見的幾種驗證方法。
Pagination 元件提供了更簡潔的方式來進行分頁與排序。
Internationalization 與 Localization 可以應用在靜態的 gettext 格式翻譯與動態翻譯 model 的資料。
Authentication 元件透過 behavior 處理使用者權限,讓使用者的驗證與存取控制更加容易。
Configure 物件提供了設定資訊的動態處理,App 物件用來匯入必要物件。
快取引擎提供了包括 memcache、 xcache、apc、檔案系統或資料庫的型態,讓您可以加入應用程式並且提供連線控制。
Console 是一個完整的小型程式架構,讓您可以為應用程式或開發環境建立指令模式介面;新加入的 console 提供一個可擴充的指令與任務系統,設定方式可以參考這個介紹( http://cakephp.org/screencasts );而 Bake 也大幅改進,現在可以使用自訂的畫面樣板,以及直接指定要執行的程式碼產出任務,有一個互動介面讓您可以在設計之前先執行。API 指令讓您可以產生文件,而不需要在程式碼中搜索、Schema 指令提供了一個資料庫的版本維護與發佈介面、ACL 指令讓您可以對權限進行增刪改查,包括授權、停權與繼承、 extractor 指令讓您更容易也更快建立翻譯檔案,它會解析程式碼中的字串。
許多新功能還沒能夠在文件中描述,不過開發團隊已經公開了進行中的版本( http://tempdocs.cakephp.org ),如果您有興趣協助,請在 IRC 上聯繫 _psychic_ 或 gwoo。
同時,也許您早已發現,官方網站已經換了新面孔:
http://cakephp.org/
本文摘譯自下面網址:
http://bakery.cakephp.org/articles/view/new-year-new-beta
檔案下載:
測試版 1.2.0.6311 http://cakeforge.org/frs/?group_id=23&release_id=372
1.2.0.6311 異動記錄: https://trac.cakephp.org/wiki/changelog/1.2.x.x
穩定版 1.1.19.6305 http://cakeforge.org/frs/?group_id=23&release_id=371
1.1.19.6305 異動記錄: https://trac.cakephp.org/wiki/changelog/1.1.x.x