Yii2
文章平均质量分 64
米粒人生
PHP从业者和爱好者,对代码的组织方面——框架、设计模式、设计原则和重构等兴趣浓厚,一致致力于这方面的探索,目的是通过优良的代码组织来提高项目的生产效率,减少项目的维护成本。
展开
-
Yii2 Scope 功能的改进
前段时间发表了一篇文章 面向对象的一小步:添加 ActiveRecord 的 Scope 功能 提到一种更加友好的方式做数据库查询。经小伙伴的建议,在满足同样条件下,可以有更为简洁的封装方法。这需要用到重载ActiveQuery方法,在通过gii建数据模型model时,可以勾选"Generate ActiveQuery"这么一项自动生成。例如,在生成Student Model时,可以自动生...原创 2018-08-01 10:14:07 · 657 阅读 · 0 评论 -
忘记时间戳的存在——Yii2超实用的自动更新时间戳的Behavior(改进版)
本文改进了Yii2中内置行为类TimestampBehavior,使得时间戳字段(如created_at,updated_at) 完全自己更新,方便得让你忘记它们的存在。Yii2的内置行为类TimestampBehavior几乎成了各种介绍Yii2行为的常客。各种讲解行为的文章中都少不了它的身影,它甚至登堂入室,被Yii2官方文档采用了。它的标准用法——虽然大家都知道——但我也贴出来:...原创 2018-03-08 00:47:24 · 2394 阅读 · 0 评论 -
面向对象的一小步:添加ActiveRecord的Scope功能
问题场景我们用Yii2的ActiveRecord功能非常的方便,假如我们有个Model叫Student,那么ActiveQuery可以通过这种方式轻便地获得:$query = Student::find();然后,我们就可以在$query上继续使用各种方法添加SQL Clause:$query->where(['gender' => 'male' ]); //选择男生...原创 2018-07-25 10:53:54 · 390 阅读 · 0 评论 -
Yii2设计模式——静态工厂模式
应用举例yii\db\ActiveRecord//获取 Connection 实例public static function getDb(){ return Yii::$app->getDb();}//获取 ActiveQuery 实例 public static function find(){ return Yii::createObject(ActiveQuer...原创 2018-12-28 09:57:11 · 317 阅读 · 0 评论 -
Yii2设计模式——工厂方法模式
应用举例yii\db\Schema抽象类中://获取数据表元数据public function getTableSchema($name, $refresh = false) { if (array_key_exists($name, $this->_tables) && !$refresh) { return $this...原创 2019-01-02 09:47:18 · 492 阅读 · 0 评论