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获取某个目录大小的代码
Sep 10 PHP
PHP下通过file_get_contents的代理使用方法
Feb 16 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
php对微信支付回调处理的方法
Aug 23 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 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
用IE远程创建Mysql数据库的简易程序
2006/10/09 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
Django 中 cookie的使用
2017/08/17 PHP
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
Python I/O与进程的详细讲解
2019/03/08 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
python requests库的使用
2021/01/06 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
法国珠宝店:CLEOR
2017/01/29 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
《红军不怕远征难》教学反思
2014/04/14 职场文书
全运会口号
2014/06/20 职场文书
2014年工人工作总结
2014/11/25 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
开学第一天的感想
2015/08/10 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
《司马光》教学反思
2016/02/22 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
Python+Appium新手教程
2021/04/17 Python
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS