cakephp 初品cakephp 入門基礎

來源:互聯網
上載者:User

首先來看一下cakephp的的執行流程(從百度百科借來的圖片):
1:首先你的伺服器必須支援rewrite,如果是不支援rewrite的虛擬機器主機的話cakephp是不能正常啟動並執行。
2:將所有的請求定向到cakephp架構後就進入了架構的route,cakephp帶有一套預設的分發規則(例如:http://……/test/test,在不做任何route配置的情況下cakephp會自動執行test_controller控制器中的test方法)。
我們可以通過配置route的方式將任何請求指向我們所希望執行的控制器和方法,配置如下(app/config/routes.php):

複製代碼 代碼如下:


Router::connect('/pages/*', array('controller' => 'test', 'action' => 'index'));


3:請求進入controller後cakephp會根據controller的名字去載入預設的model。例如:TestController會自動載入models下的test.php檔案,接著我們就可以通過如下方法調用該model的方法了。

複製代碼 代碼如下:


$this->test->find('all');


查看cakephp架構的controller基類源碼(cake\libs\controller\controller.php的__mergeVars方法中)

複製代碼 代碼如下:


if ($this->uses !== null && $this->uses !== false) {
$merge[] = 'uses';
}
foreach ($merge as $var) {
if (isset($appVars[$var]) && !empty($appVars[$var]) && is_array($this->{$var})) {
if ($var !== 'uses') {
$normal = Set::normalize($this->{$var});
$app = Set::normalize($appVars[$var]);
if ($app !== $normal) {
$this->{$var} = Set::merge($app, $normal);
}
} else {
$this->{$var} = array_merge($this->{$var}, array_diff($appVars[$var], $this->{$var}));
}
}
}


在cakephp構造controller的時候將uses數組中的model會全部執行個體化。
4、5、6:是controller和model直接處理商務邏輯的一個過程,值得注意的是cakephp的model繼承自AppModel,在AppModel中已經實現了一些資料庫的操作方法,並且model會預設關聯到資料庫中的表。這一點感覺不是很好,model只是一個資料庫的操作層了。
7:在進行完業務處理後,最終要資料要整合html輸出到瀏覽器端。在cakephp的視圖中包含布局檔案、元素檔案和模板檔案,這些檔案的在1.3版本中採用ctp的尾碼,在controller基類裡面可以修改var $ext = '.ctp';來改變模板檔案的尾碼。
小結:cakephp架構使用起來感覺不夠靈活,model層存在局限性。而視圖檔案中採用的是php的文法不便於團隊開發中的任務分離。在小項目中cakephp還是遊刃有餘的,架構提供的腳手架、核心組件和一些類可以快速方便的構建一個項目。cakephp初識,認識可能存在偏差。

以上就介紹了cakephp 初品cakephp 入門基礎,包括了cakephp方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.