【系统】

    • 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"

    • 不要随便调整目录结构,除了日志、缓存等目录可配置之外;