ThinkPHP5.1你一定要引起重视的几个细节
5.1正式发布以来,受到了很大的关注,针对用户的反馈意见,官方也及时发布了修正版本,目前最新版本为5.1.2,对于熟悉5.0版本的开发人员来说,其实掌握5.1还是一件很容易的事情,毕竟5.1版本的架构思想乃是由5.0改进而来,但如果下面的一些细节你不引起重视的话,仍然会不小心就踩坑了。
* 如果你统一在最外层`config`目录下面用子目录的方式放置模块的配置文件,请确保模块目录不存在`config`目录,否则你会得不到预期;
* 配置文件`config.php`是无意义的(因为配置文件名就是一级配置名);
* 要获取一级配置的值,使用`Config`类的`pull`方法;
* 5.1是没有5.0的请求`Request`对象的方法注入功能的,如果你用了这个功能就需要自行调整了;
* 系统常量取消,大部分原有常量使用`Env`类的`get`方法获取;
* 路由的批量注册功能请使用`rules`方法,`rule/get/post`这些路由注册方法是不支持批量注册的;
* `5.1`没有路由缓存指令了,因为支持采用延迟路由注册的机制,在应用配置中使用 `'url_lazy_route' => true`;
* 如果使用了`JSON`查询语法,`user$.name` 需要改为 `user->name`;
* 数组批量查询语法调整(其实就是不建议使用);
* 模型主键如果不是`id`,**必须**设置`pk`属性;
* 软删除`trait`引入更改为 `think\model\concern\SoftDelete`;
* 模板标签输出的时候会默认加上安全过滤(默认为`htmlentities`,可配置),如果需要输出HTML内容,记得添加`|raw`;
* 系统分页的输出记得加上`|raw`(原因见上);
* `date`方法已经做了内部封装,无需再使用`###`变量替换了;
* `import`方法已经取消了(强烈建议使用命名空间及自动加载);
* 千万不要随便修改`application`目录名称,如果需要调整应用命名空间,可以设置`APP_NAMESPACE`环境变量,然后调整composer.json中的`"app\\": "application"`;
* 不要随便调整目录结构,除了日志、缓存等目录可配置之外;
【系统】
* `5.0`很多核心类都直接提供了静态方法,但`5.1`版本这些核心类都改为动态方法,所以要像`5.0`那样使用静态方法调用的话,必须使用`Facade`(静态代理),否则可能会遇到静态方法不存在的错误;* 如果你统一在最外层`config`目录下面用子目录的方式放置模块的配置文件,请确保模块目录不存在`config`目录,否则你会得不到预期;
* 配置文件`config.php`是无意义的(因为配置文件名就是一级配置名);
* 要获取一级配置的值,使用`Config`类的`pull`方法;
* 5.1是没有5.0的请求`Request`对象的方法注入功能的,如果你用了这个功能就需要自行调整了;
* 系统常量取消,大部分原有常量使用`Env`类的`get`方法获取;
【路由】
* 路由的目录已经独立为最外层的`route`目录,并且支持多个文件定义路由;* 路由的批量注册功能请使用`rules`方法,`rule/get/post`这些路由注册方法是不支持批量注册的;
* `5.1`没有路由缓存指令了,因为支持采用延迟路由注册的机制,在应用配置中使用 `'url_lazy_route' => true`;
【控制器】
* 继承了`think\Controller`类的话,初始化方法从原来的`_initialize`方法更改为`initialize`;【数据库和模型】
* 每次`Db`类的静态查询都是一次全新的查询,但每次查询之后的查询对象并不会销毁查询条件等数据;* 如果使用了`JSON`查询语法,`user$.name` 需要改为 `user->name`;
* 数组批量查询语法调整(其实就是不建议使用);
* 模型主键如果不是`id`,**必须**设置`pk`属性;
* 软删除`trait`引入更改为 `think\model\concern\SoftDelete`;
【模板】
* `view_replace_str`配置已经取消了,如果需要模板替换功能,使用`tpl_replace_string`配置替代,并记得清空模板编译缓存;* 模板标签输出的时候会默认加上安全过滤(默认为`htmlentities`,可配置),如果需要输出HTML内容,记得添加`|raw`;
* 系统分页的输出记得加上`|raw`(原因见上);
* `date`方法已经做了内部封装,无需再使用`###`变量替换了;
【其它】
* 如果你使用了环境变量设置调试模式的话,配置文件中的调试模式配置无效;* `import`方法已经取消了(强烈建议使用命名空间及自动加载);
* 千万不要随便修改`application`目录名称,如果需要调整应用命名空间,可以设置`APP_NAMESPACE`环境变量,然后调整composer.json中的`"app\\": "application"`;
* 不要随便调整目录结构,除了日志、缓存等目录可配置之外;
相关热词: ThinkPHP5.1
相关内容
这些是最新的
热门排行
- THINKPHP5+GatewayWorker+Workerman 开发在线客服系统
- 在手机浏览器网页中点击链接跳转到微信界面的方法
- 尊云网站目录系统 ThinkPHP5网站分类目录程序 v2.2.221011
- CentOS 7安装shadowsock(一键安装脚本)
- AdminTemplate 基于LayUI 2.4.5实现的网站后台管理模板
- 用NW.js(node-webkit)开发多平台的桌面客户端
- PHP生成随机昵称/用户名
- THINKPHP5网站分类目录程序 尊云网站目录系统
- 织梦(DEDECMS)微信支付接口 微信插件
- 基于LayUI开发的 网站后台管理模板 BeginnerAdmin
- 响应式后台网站模板 - AMA.ADMIN
- layuiAdmin后台管理模板 Iframe版
- LayUI 1.0.9 升级 至 LayUI 2.1.4 方法
- 简洁清爽的会员中心模板
- jQuery幸运大转盘抽奖活动代码