ThinkPHP 3.2 版本升级了哪些内容
前言
ThinkPHP3.2基于ThinkPHP3.1的基础上有许多的变化,我觉得这个版本应该设立为ThinkPHP4.0而不是什么3.2。如果你在使用ThinkPHP3.1请勿贸然迁移升级,这可不是简单的覆盖下文件就安然无恙的事情。
1.PHP的版本
ThinkPHP3.2要求PHP5.3以上的版本,而ThinkPHP3.1只需要PHP5.2就好了
2.程序文件夹的修改
ThinkPHP3.2使用Application作为程序文件夹,而ThinkPHP3.1则是用app作为程序文件夹。
3.不同分组设定的升级
建议以后开发尽量不要做分组,要不然针对分组,有不少要处理的地方,这里只是介绍未分组的情况,有做分组的朋友,请上官方文档寻找答案。
ThinkPHP3.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文件为
<IfModulemod_rewrite.c> Options+FollowSymlinks RewriteEngineOn 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.系统配置参数的变动
ThinkPHP3.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.命名空间
ThinkPHP3.2添加了命名空间,把项目的Application/Home/Action目录下面的所有文件,头部添加如下代码(必须是除注释以外的第一行):
namespaceHome\Action; useThink\Action;
如果你的项目使用了控制器分层的话,需要对每个分层的类库文件添加类似的代码,例如有定义Event分层的话,需要在头部添加:
namespaceHome\Event; useThink\Action;
把项目的Application/Home/Model目录下面的所有文件,头部添加如下代码(必须是除注释以为的第一行):
namespaceHome\Model; useThink\Model;
如果你的项目使用了模型分层的话,需要对每个分层的类库文件添加类似的代码,例如如果你有Service分层,需要在头部添加:
namespaceHome\Service; useThink\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发生的变化了,希望对大家能够有所帮助。