????? 前几天看到CakePHP官网 上更新了v2.0.4稳定版,于是利用一个cms练习小项目感受了一下,对于CakePHP v2.0.4新特性(与之前版本的区别)简单总结如下:
????? 1. 目录结构的变更:
????? v2.0.4 中app与lib同级,cake包则放置于lib中。
?
????? 2. Bake生成代码也存在较大差异,简单示例:
??????? (1). 捕获异常
//V2.0.4 $this->User->id = $id; if (!$this->User->exists()) { throw new NotFoundException(__(' Invalid user ')); } //V 1.3.13 if (!$id && empty($this->data)) { $this->Session->setFlash(__('Invalid user', true)); $this->redirect(array('action' => 'index')); }
????? (2). 视图页面上表内容输出利用函数 h() 进行处理,其本质是利用 htmlspecialchars() 将特殊字符转换为HTML编码。
?
????? 3. $request 属性添加:
????? 控制器基类中添加 $request 属性,应用时作为 CakeRequest 对象的实例。
????? 简单应用示例:(1). 对于form表单判断: if($this->request->is('port')){ ... };
?????????????????????????? ?? (2). 对于数据获取:$this->request->data;
????????????????????????????? (3). 对于请求 url 分析处理操作等。
?
????? 4. 类的定义方式:
?????? v2.0.4 中类的属性与方法的修饰符与PHP5 类的定义方式更接近,采用public、protected、private 等修饰符。
?
????? 5. 引入文件方式:
????? v2.0.4 中文件引入利用app方式引入:
App::uses('AppController', 'Controller');?
????? 总结:
???????? 以上几点只是个人的浅显认识,可能还存在一些待商榷之处,希望各位不吝赐教。对于CakePHP的每个分支的优劣之处,还需要我们在实际运用中多多揣摩,多多体会!
?
????? 最后引用一下官方的说法:
????? CakePHP 2.0 的新亮点便是支持PHP 5 特性,包括PHP 5 的异常、标准库、JSON 编码(json_encode )及新引入的PDO (PHP Data Objects )数据访问接口。PSR-0 命名约定已经被采纳,所有的类都可被映射至一个与类名相同的文件。对象现在已可作为CakePHP 库注入,正如开发人员所说的" 没有借口再去修改核心文件了" 。开发团队同时表示,由于lazy-loading (延迟加载)的广泛使用,CakePHP 现在要比以前快得多,甚至在调试模式下也如此。
????? CakePHP 的底层控制库则完全进行了重构(rebuilt ),加入了自动帮助(automatic help generation )、参数检查及代码高亮等功能。而且使用PHPUnit 取代SimpleUnit 作为CakePHP 中的测试框架,对PostgreSQL 、SQLite 和微软的SQL Server 数据库的支持功能也进行改进。新的CakePHP 2.0 文档已经写好,同时为CakePHP 1.3 用户提供了一个详细的迁移指南。
????? CakePHP 2.0
不再支持PHP4
,CakePHP
团队对其代码库进行了重构,以便严格遵循PHP 5
规范(包括5.2
及以后版本)
。
????? CakePHP 2.0.0
与1.3
分支的CakePHP 1.3.13
是
同时发布的。是对1.3.12
的一个小更新,主要修复了其
中引入的两个regression
问题。CakePHP 1.3.13
还移除了EmailComponet
组件中的MIME
类型通知,以解决
投递问题,同时改进SecurityComponent
和TranslateBehavior
组件。更多信息参见CakePHP 2.0
和1.3.13
的改进日志。