admin 管理员组

文章数量: 1086019


2024年3月5日发(作者:flex布局默认换行吗)

ThinkPHP3.0RC2 升级指导

版权申明

发布本资料须遵守开放出版许可协议 1.0 或者更新版本。

未经版权所有者明确授权,禁止发行本文档及其被实质上修改的版本。

未经版权所有者事先授权,禁止将此作品及其衍生作品以标准(纸质)书籍形式发行。

如果有兴趣再发行或再版本手册的全部或部分内容,不论修改过与否,或者有任何问题,请联系版权所有者 liu21st@。

对ThinkPHP有任何疑问或者建议,请进入官方论坛 [ ] 发布相关讨论。并在此感谢ThinkPHP团队的所有成员和所有关注和支持ThinkPHP的朋友。

有关ThinkPHP项目及本文档的最新资料,请及时访问ThinkPHP项目主站 。

本文档及其描述的内容受有关法律的版权保护,对本文档内容的任何形式的非法复制,泄露或散布,将导致相应的法律责任。

ThinkPHP2.1完全开发手册

目 录

1

2

2.1

2.2

2.3

2.4

2.5

2.6

2.7

2.8

2.9

升级须知

升级指导

3

4

准备工作................................................................................................................................................................................. 4

入口文件................................................................................................................................................................................. 4

目录结构................................................................................................................................................................................. 5

配置文件................................................................................................................................................................................. 5

路由定义................................................................................................................................................................................. 6

控制器 ..................................................................................................................................................................................... 7

模型 .......................................................................................................................................................................................... 8

模板 .......................................................................................................................................................................................... 8

常量 .......................................................................................................................................................................................... 9

ThinkPHP文档小组 2012

2

1 升级须知

 3.0版本要求PHP的版本5.2.0以上 如果低于该版本,将无法升级;

 本升级指导用于指导开发人员从2.1版本升级到3.0RC2版本;

 如果你的项目对框架核心进行过较大的改动的话不建议升级;

 本指导手册不确保你的项目顺利升级和对因此带来的任何后果负责;

 升级项目之前请做好各项备份工作。

ThinkPHP文档小组 2012

3

2 升级指导

2.1 准备工作

 首先获取3.0最新完整版本(为了确保你的升级顺利,请先不要对完整版本做任何删减),如果是通过SVN下载的,请把Extend目录覆盖ThinkPHP框架目录下面的Extend空目录

 备份你的项目文件(包括ThinkPHP系统目录)

 删除项目的Runtime目录

 现有的ThinkPHP系统目录更名为ThinkPHP2

 把3.0的ThinkPHP目录放入原来的项目对应位置

2.2 入口文件

首先检查你的入口文件,注意如下变更:

 如果你在入口文件中定义了THINK_PATH和APP_PATH的话,请在路径最后加上“/”;

 如果你的项目目录位于网站的根目录(即项目的Lib目录位于网站根目录下面),定义APP_NAME为空字符串;

 升级过程中建议在入口文件中添加 define('APP_DEBUG',TRUE); 开启调试模式,升级完成后可以关闭调试模式;

 如果在入口文件中定义了APP_CACHE_NAME、NO_CACHE_RUNTIME、RUNTIME_ALLINONE、STRIP_RUNTIME_SPACE常量定义代码则删除,这些常量已经废弃;

ThinkPHP文档小组 2012

4

 如果你使用了模式扩展,把THINK_MODE常量定义改为MODE_NAME;

 去掉入口文件中的App::run()代码,新版不再需要;

2.3 目录结构

根据下面的情况检查你的目录结构是否需要调整:

 如果项目自定义了框架的目录名称或者路径,参考你的入口文件中的路径定义进行相关修改;

 如果项目启用了分组,模板目录下面的模板主题目录需要移动到分组目录下面,例如原来的目录结构是 Tpl/主题/分组/ 改成 Tpl/分组/主题/ ,其中主题名默认为default;

2.4 配置文件

配置文件涉及到项目配置文件、分组配置文件和调试配置文件:

 添加DEFAULT_THEME参数,设置为你当前使用的模板主题名称,一般情况下应该是default

 如果项目之前采用了模块配置文件的话,请并入分组配置文件或者项目配置文件;

 如果项目自定义了页面跳转模板,需要修改TMPL_ACTION_ERROR和TMPL_ACTION_SUCCESS配置参数为你之前的定义;

 如果项目自定义了异常页面模板,需要修改TMPL_EXCEPTION_FILE参数为你之前的定义,并拷贝你之前的页面模板文件到相应位置;

 如果项目自定义了页面Trace模板,需要修改TMPL_TRACE_FILE参数为你之前的定义,并拷贝你之前的页面模板文件到相应位置;

ThinkPHP文档小组 2012

5

 由于原来的类库包已经并入类库包,因此系统关闭了原来的自动加载路径,如果你使用了原来的Session或者Cookie类,升级的时候需要添加项目配置

'APP_AUTOLOAD_PATH'=>'',如果有自定义了其他的自动加载路径,也需要加上,注意原来的设置参数去掉最后的“.”,例如 @.Util. 改为@.Util;

 如果自定义了LOG_RECORD_LEVEL参数,修改为LOG_LEVEL,并且值改为字符串方式,多个用逗号分隔;

 下面这些配置参数不再使用,如果有定义,可以删除或者注释:

APP_GROUP_DEPR

APP_CONFIG_LIST

APP_PLUGIN_ON

APP_AUTOLOAD_REG

APP_DOMAIN_DEPLOY

URL_PATHINFO_MODEL

2.5 路由定义

新版的路由定义规则改变,如果项目启用了路由请参考下面的路由规则进行调整:

 取消路由配置文件改为配置参数URL_ROUTE_RULES定义;

 路由路由定义规范更改如下:

1、正则路由

 '路由正则'=>'[分组/模块/操作]?参数1=值1&参数2=值2...'

ThinkPHP文档小组 2012

6

 '路由正则'=>array('[分组/模块/操作]','参数1=值1&参数2=值2...')

 '路由正则'=>'外部地址' '路由正则'=>array('外部地址','重定向代码')

参数值和外部地址中可以用动态变量 采用 :1 :2 的方式

2、规则路由

 '路由规则'=>'[分组/模块/操作]?额外参数1=值1&额外参数2=值2...'

 '路由规则'=>array('[分组/模块/操作]','额外参数1=值1&额外参数2=值2...')

 '路由规则'=>'外部地址' '路由规则'=>array('外部地址','重定向代码')

路由规则中 :开头 表示动态变量 外部地址中可以用动态变量 采用 :1 :2 的方式

路由规则加上变量的数字约束定义,例如: 'news/:id|d'=>'News/read'

规则路由可以支持 全动态和动静结合定义,

例如 ':user/blog/:id'=>array('Home/Blog/user')

2.6 控制器

 如果你使用了操作链功能,请合并相关方法;

 如果使用了跨分组和项目方式调用A方法,调用格式更改为:A(' [项目://][分组/]模块');

 如果使用了R方法,调用格式更改为:R(' [项目://][分组/]模块/操作');

 如果使用了跨分组和跨项目方式调用D方法的话,调用格式更改为:D(' [项目://][分组/]模型')

 如果调用了Action的trace方法,改为调用trace函数;

ThinkPHP文档小组 2012

7

2.7 模型

 模型的findall方法已经废除,请批量更改为select方法;

 原来的tableSuffix属性已经废除,可以用trueTableName属性设置表全名替代;

 如果使用了setField getField setInc setDec方法的话,去掉第二个条件参数,改为where连贯操作方法方式传人更新条件;

 高级模型中的切换数据库方法已经废除,如果有使用请改为使用基础模型的db方法切换;

2.8 模板

 模板输出方法display和fetch方法的规则调整为display(" [模板主题:][模块:][操作] ")和fetch("

[模板主题:][模块:][操作] ") ,不再支持跨项目和跨分组调用,该规则同样适用于模板中的include标签;

 取消了模板变量的快捷输出,统一改成标准变量输出方式;

 取消了iterate标签,改为volist即可;

 取消了普通标签方式的include和load标签,以下用法不再支持 {include:public/}

{load:/public/css/} 替代用法

file="/public/css/" />

 如果使用了布局模板,请参考完全开发手册的8.23模板布局进行调整;

 如果你定制了页面Trace模板,需要在Tpl/page_的基础上重新修改;

ThinkPHP文档小组 2012

8

 如果启用了表单令牌,并且设置了个别模板页面不开启令牌,需要删除模板中的{__NOTOKEN__}字符串

2.9 常量

下面的常量不再支持:

WEB_PUBLIC_PATH 可以改成 __ROOT__.'/Public'

全部检查完成后,可以执行项目,并根据可能出现的异常信息和页面Trace显示进行调试,运行一起顺利后可以在入口文件关闭调试模式,预祝大家升级顺利!

ThinkPHP文档小组 2012

9


本文标签: 项目 模板 路由 目录 文件