ThinkPHP 3.2 版本升级了哪些内容


Posted in PHP onMarch 05, 2015

前言

ThinkPHP 3.2 基于 ThinkPHP 3.1 的基础上有许多的变化,我觉得这个版本应该设立为 ThinkPHP 4.0 而不是什么 3.2。如果你在使用 ThinkPHP 3.1 请勿贸然迁移升级,这可不是简单的覆盖下文件就安然无恙的事情。
 
1. PHP 的版本

ThinkPHP 3.2 要求 PHP 5.3 以上的版本,而 ThinkPHP 3.1 只需要 PHP 5.2 就好了
 
2. 程序文件夹的修改

ThinkPHP 3.2 使用 Application 作为程序文件夹,而 ThinkPHP 3.1 则是用 app 作为程序文件夹。
 
3. 不同分组设定的升级

建议以后开发尽量不要做分组,要不然针对分组,有不少要处理的地方,这里只是介绍未分组的情况,有做分组的朋友,请上官方文档寻找答案。

ThinkPHP 3.2 设置了一个 Home 目录,很多文件都将迁移到 Home 目录中。

App/Common/common.php         =>     Application/Home/Common/function.php

App/Common/extend.php         =>     Application/Home/Common/extend.php(假设存在定义的话)

App/Conf/Config.php           =>     Application/Home/Conf/config.php

App/Lang/zh-cn/common.php     =>     Application/Home/Lang/zh-cn.php(假设存在的话)

App/Lib/Action     =>    Application/Home/Action

App/Lib/Model      =>    Application/Home/Model

App/Tpl             =>  Application/Home/View

注意,因为 Home 目录的出现,你需要修改你的 .htaccess 文件为

<IfModule mod_rewrite.c>

  Options +FollowSymlinks

  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d

  RewriteCond %{REQUEST_FILENAME} !-f

  RewriteRule ^(.*)$ index.php/home/$1 [QSA,PT,L]

</IfModule>

否则,将会出现模块找不到的错误。

新的目录对 Action 和 Tpl 进行了重新命名,分别为 Controller 和 View,这样更加直观的体现了 MVC 的文件夹的部署方式。对于那些保留了 Action 的朋友,可以修改 Application/Common/config.php 中的信息:

'DEFAULT_C_LAYER'       =>  'Action', // 默认的控制器层名称

'MODULE_ALLOW_LIST'     =>  array('Home','Admin',...), // 配置你原来的分组列表

'DEFAULT_MODULE'        =>  'Home', // 配置你原来的默认分组

 
4. 系统配置参数的变动

ThinkPHP 3.2 废弃了以下系统配置参数

APP_GROUP_LIST

APP_GROUP_MODE

APP_AUTOLOAD_PATH

APP_TAGS_ON

APP_GROUP_PATH

DEFAULT_APP

DEFAULT_GROUP

VAR_GROUP

LOG_DEST

LOG_EXTRA

修改了以下配置参数

DEFAULT_MODULE => DEFAULT_CONTROLLER

 
5. 命名空间

ThinkPHP 3.2 添加了命名空间,把项目的Application/Home/Action目录下面的所有文件,头部添加如下代码(必须是除注释以外的第一行):

namespace Home\Action;

use Think\Action;

如果你的项目使用了控制器分层的话,需要对每个分层的类库文件添加类似的代码,例如有定义Event分层的话,需要在头部添加:

namespace Home\Event;

use Think\Action;

把项目的Application/Home/Model目录下面的所有文件,头部添加如下代码(必须是除注释以为的第一行):

namespace Home\Model;

use Think\Model;

如果你的项目使用了模型分层的话,需要对每个分层的类库文件添加类似的代码,例如如果你有Service分层,需要在头部添加:

namespace Home\Service;

use Think\Model;

 
6. 方法调整

控制器类Think\Controller或者Think\Action的下列方法已经废除:

废除方法 替代方法
_get('id') I('get.id')
_post('id') I('post.id')
_put('id') I('put.id')
_param('id') I('id')
_request('id') I('request.id')
_cookie('id') I('cookie.id')

7. 常量调整

下列常量已经废除:
APP_NAME // 3.2版本中无需再定义该常量 
__GROUP__ // 3.2版本中可以用__MODULE__ 表示模块的URL地址 
GROUP_NAME //3.2版本中可以用 MODULE_NAME 获取当前模块名 
MODE_NAME  // 3.2版本中模式扩展已经废弃,参考下面的模式调整部分 

这样就基本上完成了迁移,如果中间还有一些修改的话,请上官方文档寻找答案。

以上就是本文所述关于ThinkPHP3.2发生的变化了,希望对大家能够有所帮助。

PHP 相关文章推荐
PHP&amp;MYSQL服务器配置说明
Oct 09 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
Windows PHP5和Apache的安装与配置
Jun 08 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
PHP回溯法解决0-1背包问题实例分析
Mar 23 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
php微信公众号开发之简答题
Oct 20 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 PHP
thinkPHP学习笔记之安装配置篇
Mar 05 #PHP
PHP判断浏览器、判断语言代码分享
Mar 05 #PHP
Php-Redis安装测试笔记
Mar 05 #PHP
PHP中文乱码解决方案
Mar 05 #PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 #PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 #PHP
PHP获取QQ达人QQ信息的方法
Mar 05 #PHP
You might like
PHP中的正规表达式(二)
2006/10/09 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
ie8 不支持new Date(2012-11-10)问题的解决方法
2013/07/31 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
跟老齐学Python之网站的结构
2014/10/24 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
django2笔记之路由path语法的实现
2019/07/17 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python实现批量转换图片为黑白
2020/06/16 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
Bootstrap 学习分享
2012/11/12 HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
旅游管理本科生求职信
2013/10/14 职场文书
管理科学大学生求职信
2013/11/13 职场文书
英文请假条
2014/04/11 职场文书
小学少先队活动总结
2015/05/08 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
Go归并排序算法的实现方法
2022/04/06 Golang
索尼ICF-5900W收音机测评
2022/04/24 无线电