logo    奶牛CMS内容管理系统    最灵活的企业级免费开源电子商务系统软件!
首页 > 新闻列表 > ThinkPHP5.1你一定要引起重视的几个细节

ThinkPHP5.1你一定要引起重视的几个细节

系统

 

* `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"`;
* 不要随便调整目录结构,除了日志、缓存等目录可配置之外;

联系我们
点击这里给我发消息
点击这里给我发消息
联系我们