CakePHP自学笔记(五):Cake中的MVC开发
AquarTutorial 第一期
-CakePHP自学笔记
(一):利用Ubuntu搭建开发环境
(二):数据库配置与连接
(三):MVC开发模式简介
(四):CakePHP的命名规范
>>(五):Cake中的MVC开发
<-<-<-<-<-<-<-<-<-<-<-<-<-
行为、组件、助手
或许你已经听过很多遍那句经典的“不要重复发明轮子”了,同样,为了提高代码重用,Cake提供了Behavior(行为)、Component(组件)、Helper(助手),分别作为Model(模型)、Controller(控制器)、View(视图)的“扩展”。说白了,就跟C的标准库一样,想使用行为、组件或助手的功能,只要声明一下就OK了。
我目前比较常用的核心组件是Auth(认证系统),助手有Form(表格)、Session(会话控制)、html(快速创建html标签)等。
使用扩展
前面说过,要使用扩展,只要在模型、控制器中声明就可以了(核心助手不用声明)。示例代码:
<?php class ExampleController extends AppController { var $components = array('Auth'); } ?>
在模型中使用行为与此类似。
有时候,像Auth认证系统这样的组件是整站都需要的,我们可以在app/app_controller.php文件中向AppController类中引入Auth,这样所有继承自AppController的控制器也都有Auth了。也就是:
<?php class AppController extends Controller { var $components = array('Auth'); } ?>
回调函数
这个名词具体是什么意思我还不很明白。跟某陈小讨论了一下,他给我两个网址(CN、EN)我还没仔细看,不过wiki上那个图片是让我懂了它为什么叫这个名字,回调的意思就是主程序调用一个库函数(级别不同),而此库函数调用了一个和主程序同样级别的函数,也即“回调”。总之呢,我现在也只用一个Callback Function就是beforeFilter()。
回调函数可以用来设置一些配置选项,或者在页面跳转之前执行某些动作。
比如我用beforeFilter来设置Auth的一些参数:
function beforeFilter() { $this->Auth->allow('login', 'add', 'view', 'index'); $this->Auth->loginRedirect = array('action' => 'home'); }
这里beforeFilter是控制器的回调函数,它在任何函数被执行前执行。


