当前位置:K88软件开发文章中心网站服务器框架ThinkPHP → 文章内容

升级指导

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-26 15:35:32

为ip地址,否则会导致数据库连接缓慢(这是PHP5.3的机制问题 非TP问题),例如之前如果是配置的:'DB_HOST'=>'localhost'建议改为:'DB_HOST'=>'127.0.0.1'原来的配置参数中废弃的参数包括(增补中):APP_GROUP_LISTAPP_GROUP_MODEAPP_AUTOLOAD_PATHAPP_TAGS_ONAPP_GROUP_PATHDEFAULT_APPDEFAULT_GROUPVAR_GROUPLOG_DESTLOG_EXTRA调整的配置参数包括:DEFAULT_MODULE => DEFAULT_CONTROLLER别名定义调整如果你在项目中定义了自己的别名定义文件,需要在别名定义中使用命名空间,例如:'Think\Page' => CORE_PATH.'Page'.EXT,'Think\Auth' => CORE_PATH.'Auth'.EXT,行为定义调整如果在项目中自定义了行为定义文件,那么需要修改行为定义为命名空间方式,例如:'app_begin'=>array('Behavior\Cron','Behavior\BrowserCheck'),路由定义调整如果你的项目使用了路由功能,请参考下面的建议进行调整。3.2版本的路由定义是针对模块的,所以路由定义需要放到模块配置文件中,把Application/Common/config.php 中的路由定义相关的配置参数URL_ROUTER_ON和URL_ROUTE_RULES移动到相关模块的配置文件中并作适当的调整。新版中路由定义规则中不需要添加模块名,如果要在URL中隐藏模块名请参考模块部署章节内容。命名空间调整把项目的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;对类库中的代码实现中实例化对象(包括系统内置类和自定义类)的部分调整为命名空间调用的方式,例如:new Page(...) => new \Think\Page(...)new Pdo(...) => new \Pdo(...)new UserModel(...) => new \Home\Model\UserModel(...)用ThinkPHP内置的A/D/M方法实例化的对象代码无需调整。如果你升级的版本是3.2.1版本,应用类库的命名空间可以无需定义,但调用系统核心类库的时候仍然需要使用命名空间的方式。在3.2.1版本中,可以在应用配置文件中设置:'APP_USE_NAMESPACE' => false, // 关闭应用的命名空间定义'APP_AUTOLOAD_LAYER' => 'Action,Model', // 模块自动加载的类库后缀设置后,应用类库无需再使用命名空间定义,只需要改成:class UserAction extends Think\Action{}class UserModel extends Think\Model{}模型调整如果在模型类的自动验证或者自动完成定义中使用了下面的常量,需要进行调整:原来方式新版方式MODEL_INSERTself::MODEL_INSERTMODEL_UPDATEself::MODEL_UPDATEMODEL_BOTHself::MODEL_BOTHMUST_VALIDATEself::MUST_VALIDATEEXISTS_VALIDATEself::EXISTS_VALIDATEVALUE_VALIDATEself::VALUE_VALIDATE函数调整原来的halt函数和_404函数已经废除,ThrowException也不建议使用,统一使用E函数替代。如果你之前的项目定义了common.php函数文件,需要并入Common\function.php函数文件中。方法调整控制器类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')_server('id')I('server.id')_globals('id')I('globals.id')常量调整下列常量已经废除:APP_NAME // 3.2版本中无需再定义该常量__GROUP__ // 3.2版本中可以用__MODULE__ 表示模块的URL地址GROUP_NAME // 3.2版本中可以用 MODULE_NAME 获取当前模块名MODE_NAME // 3.2版本中模式扩展已经废弃,参考下面的模式调整部分模式调整如果你使用了ThinkPHP的模式扩展,那么抱歉地通知您,原来的模式扩展已经废弃,命令行模式不需要单独开发,新版框架可以直接切换到命令行模式访问。如果使用了PHPRPC或者REST模式的话,请参考专题中的RPC和RESTFul部分修改。如果你使用了SAE引擎扩展的话,新版在标注模式下面可以直接部署到SAE环境,无需更改。参考SAE部分说明。下面的模式暂时不提供支持:LiteThinAmf自定义驱动调整如果你在项目中自定义了相关驱动,包括数据库、标签库等,那么请参考驱动扩展部分进行调整。模板调整默认的模板替换行为只支持下列替换规则:'__ROOT__' => __ROOT__, // 当前网站地址'__APP__' => __APP__, // 当前应用地址'__MODULE__' => __MODULE__,'__ACTION__' => __ACTION__, // 当前操作地址'__SELF__' => __SELF__, // 当前页面地址'__CONTROLLER__'=> __CONTROLLER__,'__URL__' => __CONTROLLER__,'__PUBLIC__' => __ROOT__.'/Public',// 站点公共目录对于废除的替换规则你可以在模块的配置文件中自行添加,例如:'TMPL_PARSE_STRING'=>array( '../Public'=> MODULE_PATH.'View/Public/', '__TMPL__' => MODULE_PATH.'View/default/')入口文件调整如果你的原来项目的入口文件中(之前备份的index_old.php)还有其他代码,请调整合并到新的入口文件中,然后建议你开启调试模式后运行新的入口文件,如果仍然有错误发生,请根据错误提示进行下一步的调整或者到官网讨论区给我们反馈。升级成功后记得删除ThinkPHP_old和原来的项目目录。希望您的项目能够升级顺利!

上一页  [1] [2] 


升级指导