初品cakephp 入门基础


Posted in PHP onFebruary 16, 2012

初品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');

查看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初识,认识可能存在偏差。
PHP 相关文章推荐
PHP执行批量mysql语句的解决方法
May 02 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
php 获取xml接口数据的处理方法
May 31 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
Aug 06 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 #PHP
用PHP实现Ftp用户的在线管理
Feb 16 #PHP
PHP排序算法的复习和总结
Feb 15 #PHP
php网上商城购物车设计代码分享
Feb 15 #PHP
php后台多用户权限组思路与实现程序代码分享
Feb 13 #PHP
php _autoload自动加载类与机制分析
Feb 10 #PHP
php 文本文件的读取效率
Feb 10 #PHP
You might like
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
如何判断php数组的维度
2013/06/10 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
php实现zip文件解压操作
2015/11/03 PHP
功能强大的php文件上传类
2016/08/29 PHP
js 异步处理进度条
2010/04/01 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
js实现计算器功能
2020/08/10 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
pandas数据处理进阶详解
2019/10/11 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
技校生自我鉴定
2013/12/08 职场文书
学雷锋演讲稿
2014/03/04 职场文书
调查研究项目计划书
2014/04/29 职场文书
网站创业计划书
2014/04/30 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
欢迎词范文
2015/01/27 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
五年级作文之成长
2019/09/16 职场文书
MySQL创建管理LIST分区
2022/04/13 MySQL