ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 【V1.5.1升级至V1.6.0】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 > 升级前,可能覆盖一些文件,请确认这些文件你是否自己修改过,如果是,升级后记得再修改一次。 ## 1.下载安装补丁 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` ## 2.执行升级程序。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) >[info] 如果是授权用户可登录海豚官网后下载授权版补丁。 ## 3.注意事项 由于本次更新涉及一处安全更新,系统默认行为日志功能禁止执行一些危险函数,如:eval、exec、system等,具体可查看文件:`config/system.php` ![](https://img.kancloud.cn/9b/db/9bdbfae890d04482f2fe70e91d2fdfef_936x639.png) 如果你的行为日志规则中需要用到一些被禁止的函数,请在此文件中去掉对应的函数名即可。 # 【V1.5.0升级至V1.5.1】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 ## 1.下载安装补丁 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` ## 2.执行升级程序。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) >[info] 如果是授权用户可登录海豚官网后下载授权版补丁。 ## 3.注意事项 由于本次更新涉及一处安全更新,系统默认行为日志功能禁止执行一些危险函数,如:eval、exec、system等,具体可查看文件:`config/system.php` ![](https://img.kancloud.cn/9b/db/9bdbfae890d04482f2fe70e91d2fdfef_936x639.png) 如果你的行为日志规则中需要用到一些被禁止的函数,请在此文件中去掉对应的函数名即可。 # 【V1.4.5升级至V1.5.0】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 1.下载安装补丁 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 2.执行升级程序。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) >[info] 如果是授权用户可登录海豚官网后下载授权版补丁。 # 【V1.4.4升级至V1.4.5】 下载补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) 然后覆盖即可 # 【V1.4.3升级至V1.4.4】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 1.下载安装补丁 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 2.执行升级程序。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) >[info] 如果是授权用户可登录海豚官网后下载授权版补丁。 # 【V1.4.2升级至V1.4.3】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 1.下载安装补丁 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 2.执行升级程序。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) >[info] 如果是授权用户可登录海豚官网后下载授权版补丁。 # 【V1.4.0升级至V1.4.2】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 >[info] 由于1.4.1的更新内容未发布,所以直接跳过1.4.1版本,更新至1.4.2 1.下载安装补丁 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 2.执行升级程序。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) >[info] 如果是授权用户可登录海豚官网后下载授权版补丁。 # 【V1.3.3升级至V1.4.0】 >[danger]注意!本次升级了ThinkPHP核心版本至5.1.34LTS,由于TP5.0到TP5.1并非无缝升级,所以本次DolphinPHP升级也非无缝升级,因为需要修改的地方不少,所以不建议升级现有的旧项目,而且本次升级暂无提供升级补丁。 如果真的要升级,请按下面的升级指导操作。 >[danger]在升级前,请注意**备份好站点**,并且先看下ThinkPHP官方的升级指导:[点此查看](https://www.kancloud.cn/manual/thinkphp5_1/354155) >[danger]另外,ThinkPHP5.1要求PHP至少是5.6版本,请确保您的服务器上的PHP版本符合要求。 1.备份好您的项目(**非常非常非常重要!**) 2.在项目根目录,也就是与`application`同级目录下创建新目录`config`,将原来的应用`extra`目录下面的配置文件直接移动到`config`目录下面。 3.下载DolphinPHP1.4.0完整安装包:[链接](http://www.dolphinphp.com/getdolphin.html) 将安装包解压覆盖到您的项目,如果您修改过DolphinPHP框架的源码,请注意那些文件,以便覆盖后重新再修改。 4.将`application`目录下的`route.php`移动到上级目录的`route`目录下,由于TP5.1的路由不能关闭,所以会导致访问后台时也会按路由规则访问,这点请注意。 5.删除以下无用文件: ``` thinkphp/.travis.yml thinkphp/codecov.yml thinkphp/console.php thinkphp/library/think/controller/Rest.php thinkphp/library/think/controller/Yar.php thinkphp/library/think/log/driver/Test.php thinkphp/library/think/model/Merge.php thinkphp/library/traits/model/SoftDelete.php thinkphp/library/traits/think/Instance.php thinkphp/phpunit.xml thinkphp/start.php ``` 6.删除runtime目录 ## 其他修改 完成以上步骤后,项目可能还不能正常运行,自己开发的模块也要修改,需要注意以下几点: **1.所有的内置类改为引入门面的方式** 也就是`use think\Cache;` 改为 `use think\facade\Cache;` 具体请参考:https://www.kancloud.cn/manual/thinkphp5_1/353959 **2.所有类的初始化方法名`_initialize`要改为`initialize`** **3.索引数组查询调整如下:** 比如5.0是这样的 ``` $map = [ 'uid' => ['<>', 1], 'name' => 'ming' ]; ``` 5.1需要改成 ``` $map = [ ['uid', '<>', 1], ['name', '=', 'ming'] ]; ``` **4.模板替换参数取消了** 也就是`fetch()`方法内不再支持传入`$replace`参数,所以包括插件和ZBuilder都不再支持传入自定义模板替换参数 **5.TP5.1取消了所有常量** 需要用`Env::get()`获取,比如`APP_PAT`要用`Env::get('app_path')`来代替,具体参考:https://www.kancloud.cn/manual/thinkphp5_1/354155#5051_218 **6.DS要改为DIRECTORY_SEPARATOR** **7.需要输出html内容的话,需要在变量后面使用函数raw,例如{$var|raw}方式替换** **8.Hook::listen()方法取消了额外参数** 所以插件的处理要注意参数的接收方式,并且插件里的钩子方法的参数只能接受形参,不能接受实参。 >[info]**如果升级过程中,遇到问题或者发现bug,请到论坛的指定贴内回复。再次之前,请认真阅读ThinkPHP5.1手册,有些用法已经改变** >[danger]**再次提醒,如非必要,在建项目请勿盲目升级。** # 【V1.3.2升级至V1.3.3】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 >[danger]注意:ThinkPHP5.0.24发布了一个安全,建议升级到最新版本。如果不便升级,请直接参考最新版本的Request类的method方法进行手动修复。https://github.com/top-think/framework/commit/4a4b5e64fa4c46f851b4004005bff5f3196de003 1.下载安装补丁 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 执行升级程序。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) >[info] 授权用户可登录海豚官网后下载授权版补丁,包含新功能。 # 【V1.3.1升级至V1.3.2】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 >[danger]注意:ThinkPHP5.0.23发布了一个安全,建议升级到最新版本。如果不便升级,请参考TP官方文档,修复方法:https://blog.thinkphp.cn/869075 1.下载安装补丁 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 执行升级程序。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) **2.数据授权** 如果使用到了数据授权功能,请修改模块配置文件info.php中的数据授权配置格式,如果没有用到数据授权功能,请忽略。 比如原本cms模块中的数据授权配置如下 ``` // 授权配置 'access' => [ 'group' => [ "tab_title" => '栏目授权', "table_name" => "cms_column", "primary_key" => "id", "parent_id" => "pid", "node_name" => "name" ], ], ``` 请修改为 ``` // 授权配置 'access' => [ 'group' => [ 'title' => '栏目授权', 'nodes' => [ 'group' => 'column', 'table_name' => 'cms_column', 'primary_key' => 'id', 'parent_id' => 'pid', 'node_name' => 'name', ] ], ], ``` 然后进入后台,【系统设置】【扩展中心】【模块管理】,更新cms模块 ![](https://box.kancloud.cn/5f19f25defb057f5d8b22ae132745458_1346x117.png) 其他模块的数据授权也类似这样修改,具体的数据授权配置请参考:[数据授权(1.3.2+)](数据授权.md) **3.清空缓存** 点击后台右上角的清空缓存按钮,或者手动删除runtime目录内的所有文件 # 【V1.3.0升级至V1.3.1】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 执行升级程序。 >[info]注意:只能从后台入口执行升级程序,升级过程中,请注意查看升级说明。 如果执行升级过程中,卡主不动,请检测下是不是PHP5环境,如果是,请打开php.ini,搜索 `;always_populate_raw_post_data = -1;` 将前面的分号去掉,然后重启php。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.2.1升级至V1.3.0】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 下载补丁包并解压,将`update`目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 执行升级程序。 >[info]注意:只能从后台入口执行升级程序 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.2.0升级至V1.2.1】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 下载补丁包并解压,将update目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 执行升级程序。 >[info]注意:只能从后台入口执行升级程序 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.1.0升级至V1.2.0】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 下载补丁包并解压,将update目录复制到`application`目录,然后访问 `http://你的网址/admin.php/update` 执行升级程序。 >[info]注意:只能从后台入口执行升级程序 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.0.8升级至V1.1.0】 >[danger] 注意!升级前,请务必备份站点和数据库,避免不必要的损失。 >[danger] 由于此次更新了ThinkPHP核心,导致根目录下的`composer.lock`文件和`vendor`目录有变化,如果自己用composer安装过其他扩展,请注意和自己的`composer.lock`比对,勿直接覆盖,以免导致某些扩展丢失。 由于新版本将框架入口文件移回public目录,所以升级后,需要将网站运行目录设置为public。如果是正式项目,请认真考虑是否升级到此版本,避免出现未知问题。建议另外复制项目进行升级测试。 **1. 在数据库中执行,以下sql语句,注意表前缀是否为dp_,如果不是,请改为自己的表前缀。** ~~~ INSERT INTO `dp_admin_config` VALUES (null, 'system_log', '系统日志', 'system', 'switch', '1', '', '是否开启系统日志功能', '', '', '', '', '', '0', '', '', '', '', '1512635391', '1512635391', '99', '1'); ~~~ **2. 打开【系统】【系统设置】【数据库】,设置“数据库备份根路径”为“../data/”。** **3. 如果有自定义扩展表单项,需要将除`Builder.php`以外的文件,移动到`public/extend/form/`下** 比如,原来的扩展表单项是这样的文件结构 ![](https://box.kancloud.cn/9f835ac0e27a2f62e843704ecd7d644b_287x172.jpg) 那么需要将除`Builder.php`以外的其他文件,都移动到public目录 ![](https://box.kancloud.cn/131025fc159f1771d548168394f55e66_341x152.jpg) **4. 覆盖补丁** 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) **5. 删除无用的文件** 因为将入口文件移动到了public目录,所以原来的入口文件,及其他就无用了,可以删除也可以不删除。 ![](https://box.kancloud.cn/bf8db5a7ccc3660e716050d2e622268c_139x131.jpg) # 【V1.0.7升级至V1.0.8】 >[danger] 升级前,请注意备份站点和数据库,这是国际惯例,以防不测。 此版本主要以修复bug和优化为主,可以无缝升级,但还是强烈建议升级前,先备份站点和数据库!!! 升级后,请清空runtime目录。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.0.6升级至V1.0.7】 >[danger] 升级前,请注意备份站点和数据库,这是国际惯例,以防不测。 **1. 在数据库中执行,以下sql语句,注意表前缀是否为dp_,如果不是,请改为自己的表前缀。** ~~~ INSERT INTO `dp_admin_hook` VALUES (null, 'page_plugin_js', '', '页面插件js钩子', '1', '1503633591', '1503633591', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'page_plugin_css', '', '页面插件css钩子', '1', '1503633591', '1503633591', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'signin_sso', '', '单点登录钩子', '1', '1503633591', '1503633591', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'signout_sso', '', '单点退出钩子', '1', '1503633591', '1503633591', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'user_add', '', '添加用户钩子', '1', '1503633591', '1503633591', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'user_edit', '', '编辑用户钩子', '1', '1503633591', '1503633591', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'user_delete', '', '删除用户钩子', '1', '1503633591', '1503633591', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'user_enable', '', '启用用户钩子', '1', '1503633591', '1503633591', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'user_disable', '', '禁用用户钩子', '1', '1503633591', '1503633591', '1'); ~~~ **2. 然后覆盖补丁。** >[danger] 注意!!由于此次更新了ThinkPHP核心,导致根目录下的`composer.lock`文件和vendor目录有变化,如果自己用composer安装过其他扩展,请注意和自己的`composer.lock`比对,勿直接覆盖,以免导致某些扩展丢失。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) **3. 清空`runtime`目录下的所有缓存文件。** >[danger] 考虑到安全问题,新版不再以明文的方式传输表名,如果需要在quickedit、disable、enable等方法获取表名,可以按下面的方法获取 ~~~ $table_token = input('param._t'); $table_data = session($table_token); $table = $table_data['table']; // 获取当前表格所设置的表名 ~~~ # 【V1.0.5升级至V1.0.6】 >[danger] 升级前,请注意备份站点和数据库,这是国际惯例,以防不测。 1. 在数据库中执行,以下sql语句,注意表前缀是否为dp_,如果不是,请改为自己的表前缀。 ~~~ INSERT INTO `dp_admin_config` VALUES (null, 'upload_driver', '上传驱动', 'upload', 'radio', 'local', 'local:本地', '图片或文件上传驱动', '', '', '', '', '', '0', '', '', '', '', '1501488567', '1501490821', '100', '1'); INSERT INTO `dp_admin_hook` VALUES (null, 'upload_attachment', '', '附件上传钩子', '1', '1501493808', '1501493808', '1'); ALTER TABLE `dp_admin_menu` ADD COLUMN `params` varchar(255) NOT NULL DEFAULT '' COMMENT '参数' AFTER `status`; ~~~ 2. 然后覆盖补丁即可。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.0.4升级至V1.0.5】 >[danger] 升级前,请注意备份站点和数据库,这是国际惯例,以防不测。 1. 如果用到`index_url`方法生成前台url,那么请改为`home_url`来生成。 2. 在数据库中执行,以下sql语句,注意表前缀是否为dp_,如果不是,请改为自己的表前缀。 ~~~ UPDATE dp_admin_menu SET url_type = 'module_admin' WHERE url_type = 'module'; ~~~ >[danger] **特别注意**,由于此次升级添加了新扩展,composer.json文件有所变化,如果自己用composer安装过其他扩展,请注意和自己的composer.json比对,勿直接覆盖,以免导致某些扩展丢失。 3. 然后覆盖补丁即可。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.0.3升级至V1.0.4】 >[danger] 升级前,请注意备份站点和数据库,这是国际惯例,以防不测。 打开“系统”-“系统功能”-“系统设置”,切换到“系统”选项卡,将【配置类型】的内容替换成以下数据,然后保存。 ~~~ text:单行文本 textarea:多行文本 static:静态文本 password:密码 checkbox:复选框 radio:单选按钮 date:日期 datetime:日期+时间 hidden:隐藏 switch:开关 array:数组 select:下拉框 linkage:普通联动下拉框 linkages:快速联动下拉框 image:单张图片 images:多张图片 file:单个文件 files:多个文件 ueditor:UEditor 编辑器 wangeditor:wangEditor 编辑器 editormd:markdown 编辑器 ckeditor:ckeditor 编辑器 icon:字体图标 tags:标签 number:数字 bmap:百度地图 colorpicker:取色器 jcrop:图片裁剪 masked:格式文本 range:范围 time:时间 ~~~ 然后覆盖补丁即可。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.0.2升级至V1.0.3】 >[danger] 升级前,请注意备份站点和数据库,这是国际惯例,以防不测。 打开“系统”-“系统功能”-“配置管理”,切换到“系统”选项卡 修改“`default_module`”为“`home_default_module`” ![](https://box.kancloud.cn/2a35a893ad9d8b81e975b04c4b2850f6_841x603.png) 然后覆盖补丁即可。 补丁:[http://dolphinphp.com/patch.html](http://dolphinphp.com/patch.html) # 【V1.0.1升级至V1.0.2】 [http://bbs.dolphinphp.com/?/article/22](http://bbs.dolphinphp.com/?/article/22) # 【V1.0.0升级至V1.0.1】 [http://bbs.dolphinphp.com/?/article/15](http://bbs.dolphinphp.com/?/article/15) # 【V1.0公测版2017-01-20升级至V1.0.0正式版】 >[danger]更新前,请注意备份文件和数据库。 1.执行以下sql语句 >[danger]注意:如果表前缀不是dp_请替换为你的表前缀 ~~~ ALTER TABLE `dp_admin_module` CHANGE `config` `config` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '配置信息'; ALTER TABLE `dp_admin_module` CHANGE `access` `access` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '授权配置'; INSERT INTO `dp_admin_config` VALUES (NULL, 'default_module', '前台默认模块', 'system', 'select', 'index', '', '前台默认访问的模块,该模块必须有Index控制器和index方法', '', '', '', '', '', '0', '', '', '', '', '1486714723', '1486715620', '104', '1'); INSERT INTO `dp_admin_config` VALUES (NULL, 'minify_status', '开启minify', 'system', 'switch', '0', '', '开启minify会压缩合并js、css文件,可以减少资源请求次数,请按实际需求开启或关闭', '', '', '', '', '', '0', '', '', '', '', '1487035843', '1487035843', '99', '1'); ~~~ 2.覆盖补丁 下载地址:[2017-01-20升级至1.0正式版](http://www.dolphinphp.com/index/index/getpatch/md5/E4C1465078682813904FA4F3DA06E587.html) 本次更新的文件较多,如果没有修改过框架文件,可直接将补丁覆盖到框架,如果修改过框架文件,请自行用对比工具查看和修改。 如果在插件中用到了模板替换变量`__PLUGINS__`,请将对应的插件资源从`public/static/plugins/`移动到对应的插件目录下 # 【V1.0公测版2017-01-10升级至2017-01-20】 下载补丁:[2017-01-10升级至2017-01-20](http://www.dolphinphp.com/index/index/getpatch/md5/87C65A71CF3292EF978487D5F105D0FE.html) 安装方法:直接覆盖到框架根目录(如果修改过框架文件,则自行比对覆盖) # 【V1.0公测版2017-01-04升级至2017-01-10】 下载补丁:[2017-01-04升级至2017-01-10](http://www.dolphinphp.com/index/index/getpatch/md5/4A33962F03F26604CB24D98160B7B9D8.html) 安装方法:直接覆盖到框架根目录 # 【V1.0公测版2016-12-26升级至2017-01-04】 下载补丁:[2016-12-26升级至2017-01-04](http://www.dolphinphp.com/index/index/getpatch/md5/7E7A96DBDA4D82EB13CDAEFBA9534CB4.html) 安装方法:直接覆盖到框架根目录