首頁  >  文章  >  後端開發  >  cakephp 初品cakephp 入門基礎

cakephp 初品cakephp 入門基礎

WBOY
WBOY原創
2016-07-29 08:47:59771瀏覽

 初品cakephp 入门基础
首先來看一下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');


contro🜵框架的controller基類來源的原始碼(Hakelibs)中查看

複製程式碼 程式碼如下:

if ($this->uses !== null && $this->uses !== false) {
$merge[] = 'uses';
}
}
} ($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的時候將所有實例化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教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn