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