CakePHP 包括控制器、模型和視圖類,還包括一些能使 MVC 編程更快更容易的附加的類和對象。組件、行爲和助手就是這樣的類,它們提供擴展和利用,以使你能在基於 MVC 類的應用程序中快速添加功能。 如今咱們將保持在一個較高水平上,找一找如何使用這些工做的詳細信息。 php
每一個控制器、助手和模型都有一個父類,你能夠用它來定義應用程序內的變化。AppController (位置在/app/Controller/AppController.php)、 AppHelper (位置在 /app/View/Helper/AppHelper.php)和 AppModel (位置在 /app/Model/AppModel.php)是放置你要在全部控制器、助手和模型中共享的方法的好地方。 數據庫
儘管它們不是類或者文件,路由仍然在 CakePHP 請求中充當重要角色。路由定義告訴 CakePHP 如何將 URL 映射到控制器動做。默認的行爲假定 URL /controller/action/var1/var2 映射到 Controller::action($var1, $var2),你可使用路由自定義 URL 以及它們在你的應用程序裏如何詮釋。 編程
一些應用程序的特性值得總體打包。插件是完成某些特定目的的模型、控制器和視圖包,它們能跨越多個應用程序。用戶管理系統或者簡單的博客比較適用於 CakePHP 插件。 app
組 件是在控制器邏輯中提供幫助的類。若是你有一些邏輯想要在多個控制器(或者應用程序)間共享,組件一般是比較合適的。做爲例子,內核的 EmailComponent 類建造了一個建立和發送郵件的元件。 相對於在單個控制器內編寫一個方法實現這個邏輯,你能打包這個邏輯並使其能夠共享。 佈局
控制器也適合回調,這些回調對你也頗有用,某些狀況下你須要在 CakePHP 的核心操做間插入一些邏輯。有效的回調包括: spa
簡單地說,行爲在模型間添加公用的功能。例如,你在樹形結構中存儲用戶數據,你能夠指定你的 User 模型的行爲像一個樹,而且在你的樹結構中提供刪除、添加和移動節點的功能。 插件
模 型老是支持從其它類調用數據源。數據源是一個抽象的概念,它能使模型以一致的方式操控不一樣類型的數據。CakePHP 應用程序的主要數據來源經常是數據庫,你可能會寫一個容許你的模型提供 RSS feeds、CSV 文件、LDAP 分支或者 iCal 事件的附加的數據源。數據源容許你在不一樣的來源中整合數據:相對於 SQL 鏈接的限制,數據源容許你讓你的 LDAP 模型整合許多 iCal 事件。 對象
和控制器同樣,模型也包含回調: 事件
這些方法的名字足以讓你知道它們是作什麼的。你能在 模型 一章找到更詳細的信息。 路由
助手是在視圖邏輯中提供幫助的類。與組件之於控制器相似,助手容許視覺邏輯被訪問並在多個視圖間共享。核心助手中之一,JsHelper,使得在視圖中使用 Ajax 請求更容易,而且提供 jQuery(默認)、Prototype 和 Mootools 支持。
更多的應用程序使用視圖代碼的片段提供複用。CakePHP 使佈局和元素中的視圖代碼更易於複用。默認的,每一個視圖由控制器放置在一個佈局中渲染。當很小的內容碎塊要在多個視圖內自用時使用元素。