ThinkPHP 3.2 版本升级了哪些内容

 ThinkPHP 3.2发布了挺长时间了,这里也总结下这次ThinkPHP 3.2到底发生了哪些变化,方便程序员们进行开发。

 
 

前言

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 HomeAction;
use ThinkAction;

 

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

 

代码如下:

namespace HomeEvent;
use ThinkAction;

 

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

 

代码如下:

namespace HomeModel;
use ThinkModel;

 

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

 

代码如下:

namespace HomeService;
use ThinkModel;

6. 方法调整

 

控制器类ThinkController或者ThinkAction的下列方法已经废除:

废除方法 替代方法
_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发生的变化了,希望对大家能够有所帮助。

时间: 2024-11-18 07:51:35

ThinkPHP 3.2 版本升级了哪些内容的相关文章

ThinkPHP 3.2 版本升级了哪些内容_php实例

前言 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多表查询两表有重复相同字段的完美解决方法_php技巧

框架:thinkphp 版本:3.2.3 内容:查询语句 解决问题:重复字段问题 $Data = M('a')->where($where) ->Field('a.name as aname,b.name as uname,a.*') ->join('b on b.jb_id=a.id') ->order('a.id desc') ->select(); 解释:a.* 查询a表所有的字段 a.name as aname 转换a表中的name重复字段为aname 以上就是小编为

thinkphp自定义函数的使用

问题描述 thinkphp自定义函数的使用 thinkPHP中 一个html里有个 获得:{$deal.money}元 显示的是 获得:1300元 我现在需要显示为 获得:1000 +300元 这样的形式(1000+变量) 求教如何改 找到过一个 $deal['money'] 改为 $deal['moneyadd'] = $deal['money'] - 1000 也不行 解决方案 第三课 使用自定义函数Thinkphp模板中使用自定义函数的方-ThinkPHP 3.2自定义函数 解决方案二:

zend framework多模块多布局配置

许多人在使用过程中都会遇到这样那样的问题,而且zend framework现在已经到1.11版本了,网络上的很多资料都还停留在旧版本上,因此我在这里以当前的最新版本1.11为例,来简单介绍一下如何使用zend framework创建模块化的应用程序.由于今后框架的版本升级,有些内容可能会过时,请及时参阅最新的使用手册. 1.准备工作 首先假设你已经部署了web服务器和php,并下载了zend framework的最新版本,创建了一个最原始的zend framework项目,并可以访问默认的act

zend framework多模块多布局配置_php技巧

许多人在使用过程中都会遇到这样那样的问题,而且zend framework现在已经到1.11版本了,网络上的很多资料都还停留在旧版本上,因此我在这里以当前的最新版本1.11为例,来简单介绍一下如何使用zend framework创建模块化的应用程序.由于今后框架的版本升级,有些内容可能会过时,请及时参阅最新的使用手册. 1.准备工作 首先假设你已经部署了web服务器和php,并下载了zend framework的最新版本,创建了一个最原始的zend framework项目,并可以访问默认的act

百度移动地图API1.1

百度地图移动版API 百度地图移动版API是一套基于移动互联网设备的应用程序接口,通过该接口,您可以轻松访问百度服务和数据,构建功能丰富.交互性强的地图应用程序.百度地图移动版API不仅包含构建地图的基本接口,还提供了诸如定位服务.本地搜索.路线规划等数据服务,你可以根据自己的需要进行选择.百度地图移动API的服务是免费的,任何非盈利性程序均可使用.请参阅使用条款获得详细信息. 百度地图移动版API 1.1.3版本(Android) 提供地图浏览,漫游,多点放大缩小的功能,还包括丰富的地图图层.

OpenStack新版本:新增近350个功能,修复Bug超2900个

[编者按]在OpenStack Icehouse版本正式发布之前的6个月里,有来自全球超过120家公司与机构的员工参与其中,代码贡献者超过1200名,比2013年的Havana 版本提高了32%.来自咨询机构Forrester的分析表示,OpenStack已经逐步成为事实上(de facto)的基础架构云(IaaS)标准.在新版本中,按照代码提交次数,红帽.IBM.HP.Rackspace以及Mirantis继续领先.本次版本升级的重点内容有:提高项目的稳定性与成熟度,提升用户体验的一致性,特别

thinkphp3.2.3版本的数据库增删改查实现代码_php实例

框架thinkphp 版本:3.2.3 内容:数据库操作 1. 多表查找一条数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->find(); 2.查找一条数据 M('a表')->where('条件')->find(); 3.多表查询所有数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->select(); 4.查询

百度李东旻:手机百度月活跃用户数过亿

[TechWeb报道]8月15日消息,2013中国互联网大会今日在京召开,百度移动·云事业部产品总监李东旻表示,安卓活跃用户出现井喷态势,预计安卓的活跃用户年底将突破3亿,此外,目前手机百度安卓客户端的月活跃用户数已经过亿.在李东旻看来,当前APP开发者面临APP分发和使用两大困境.分发方面,分发推广成本飞速上涨,缺乏天然流入用户,命中率低,留存率和活跃率低.在所有 应用市场0.1%的TOP应用占据了整个市场55%的下载,99.99%的应用,占据了剩下不到一半的市场,APP的寡头效应非常明显,应