亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 1637 | 回復(fù): 1
打印 上一主題 下一主題

初品cakephp [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2012-02-25 21:19 |只看該作者 |倒序?yàn)g覽
初品cakephp








近段時(shí)間項(xiàng)目挺輕松的,剛好有時(shí)間來了解一下cakephp。下面只是一己之見,初識(shí)cakephp而已,完全不保證內(nèi)容的正確性。





首先來看一下cakephp的的執(zhí)行流程(從百度百科借來的圖片):

1:首先你的服務(wù)器必須支持rewrite,如果是不支持rewrite的虛擬主機(jī)的話cakephp是不能正常運(yùn)行的。

2:將所有的請(qǐng)求定向到cakephp框架后就進(jìn)入了框架的route,cakephp帶有一套默認(rèn)的分發(fā)規(guī)則(例如:http://……/test/test,在不做任何route配置的情況下cakephp會(huì)自動(dòng)執(zhí)行test_controller控制器中的test方法)。

我們可以通過配置route的方式將任何請(qǐng)求指向我們所希望執(zhí)行的控制器和方法,配置如下(app/config/routes.php):



  1. ?




  2. Router::connect('/pages/*', array('controller' => 'test', 'action' => 'index'));
復(fù)制代碼
3:請(qǐng)求進(jìn)入controller后cakephp會(huì)根據(jù)controller的名字去加載默認(rèn)的model。例如:TestController會(huì)自動(dòng)加載models下的test.php文件,接著我們就可以通過如下方法調(diào)用該model的方法了。
  1. ?




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

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




  4. ?




  5. 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}));        }    }}
復(fù)制代碼
在cakephp構(gòu)造controller的時(shí)候?qū)ses數(shù)組中的model會(huì)全部實(shí)例化。

4、5、6:是controller和model直接處理業(yè)務(wù)邏輯的一個(gè)過程,值得注意的是cakephp的model繼承自AppModel,在AppModel中已經(jīng)實(shí)現(xiàn)了一些數(shù)據(jù)庫(kù)的操作方法,并且model會(huì)默認(rèn)關(guān)聯(lián)到數(shù)據(jù)庫(kù)中的表。這一點(diǎn)感覺不是很好,model只是一個(gè)數(shù)據(jù)庫(kù)的操作層了。

7:在進(jìn)行完業(yè)務(wù)處理后,最終要數(shù)據(jù)要整合html輸出到瀏覽器端。在cakephp的視圖中包含布局文件、元素文件和模板文件,這些文件的在1.3版本中采用ctp的后綴,在controller基類里面可以修改var $ext = '.ctp';來改變模板文件的后綴。



小結(jié):cakephp框架使用起來感覺不夠靈活,model層存在局限性。而視圖文件中采用的是php的語法不便于團(tuán)隊(duì)開發(fā)中的任務(wù)分離。在小項(xiàng)目中cakephp還是游刃有余的,框架提供的腳手架、核心組件和一些類可以快速方便的構(gòu)建一個(gè)項(xiàng)目。cakephp初識(shí),認(rèn)識(shí)可能存在偏差。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2012-02-25 21:19 |只看該作者
謝謝分享
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP