ThinkPHP5.1你一定要引起重视的几个细节
web ThinkPHP5.1 2018-11-13 2347 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6280989 2594 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

模型主键如果不是`id`,**必须**设置`pk`属性;

主要关注这个问题


5.1正式发布以来,受到了很大的关注,针对用户的反馈意见,官方也及时发布了修正版本,目前最新版本为5.1.2,对于熟悉5.0版本的开发人员来说,其实掌握5.1还是一件很容易的事情,毕竟5.1版本的架构思想乃是由5.0改进而来,但如果下面的一些细节你不引起重视的话,仍然会不小心就踩坑了。


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

版权声明:本篇文章来源于网络。 来源链接

相关推荐
Non-static method think\Config::get() should not be called statically
ThinkPHP5.1 | 2018-12-29 10328
原来是这样use think\Config; 改成这样use think\facade\Config; 下面是官方手册的解释 配置获取 要使用Config类,首先需要在你的类文件中引入 use think\facade\Config; 或者(因为系统做了类库别名,其实就是调用think\facade\Config) u...
thinkPHP5 order多条件排序
ThinkPHP5.1 | 2017-10-24 10190
总结如下: //单一条件排序 $user = $this->where(['parentId'=>0)->field('userId,userName,userSort,isShow')->order('userSort', 'asc')->select(); //多个条件排序,可以多加一个order...
评论:0条
评论加载中...
发表评论