随笔分类 - Yii
通过学习Yii2框架,可以达到以下两个目标:
第一,从内涵上说——通过对Yii2的解剖,深入理解这个框架的编程思想,掌握各个重要组成部分的构成和用法
第二,从外延上说——通过对这款典型框架的解剖,能举一反三的了解其他PHP框架甚至整个服务端所涉及的重要知识点和涉及内容
摘要:Yii2框架的设计包含了哪些设计模式?用到了哪些设计原则,本文将概括地为您做下介绍
阅读全文
摘要:我们首先来思考一个问题:作为工程师,我们的价值是什么? 笔者认为是—— 解决用户问题 。 我们的任何知识和技能,如果不能解决特定的问题,那么就是无用的屠龙之术;我们的任何经验,如果不能对解决新的问题有用,那这经验就是过时的。工程师不是空谈者,也不是理论家,再好的理论,再好的设计,不能落地变成产品,不
阅读全文
摘要:前段时间发表了一篇文章 面向对象的一小步:添加 ActiveRecord 的 Scope 功能 提到一种更加友好的方式做数据库查询。经小伙伴的建议,在满足同样条件下,可以有更为简洁的封装方法。
阅读全文
摘要:Scope方法实现了在Yii2中更加友好的方式去做数据库查询,例如:
Student::male()->all(); //选择男生
Student::checked()->male()->all(); //选择审核通过的男生
阅读全文
摘要:人有生老病死,一年有春夏秋冬四季演替,封建王朝有兴盛、停滞、衰亡的周期律——“其兴也勃焉,其亡也忽焉”。换句话说,人,季节,王朝等等这些世间万物都有自己的生命周期。同样地,在软件行业,一个系统,一个组件,一个功能,一个类都是有自己的生命周期的。 那么,为什么要从生命周期的这个角度去理解程序? 在现实
阅读全文
摘要:在Yii中创建新对象或者初始化已经存在的对象广泛的使用配置,配置通常包含被创建对象的 类名 和一组将要赋值给对象的 属性 的初始值,这里的属性是Yii2的 "属性" 。还可以在对象的 "事件" 上绑定事件处理器,或者将 "行为" 附加到对象上。从而在定义了对象的初始值的同时,充分规定对象的运行时的动
阅读全文
摘要:本文改进了Yii2中内置行为类 ,使得时间戳字段 完全 自己更新, 方便得让你忘记它们的存在 。 Yii2的内置行为类 几乎成了各种介绍Yii2行为的常客。各种讲解行为的文章中都少不了它的身影,它甚至登堂入室,被Yii2官方文档采用了。它的标准用法——虽然大家都知道——但我也贴出来: 但是这样做,有
阅读全文
摘要:使用行为(behavior)可以在不修改现有类的情况下,对类的功能进行扩充。通过将行为绑定到一个类,可以使得类具有行为本身所具有的属性和方法,就好像是类本来就具有的这些属性和功能一样。 好的代码设计,必须要同时满足可复用性、可维护性和可扩展性。设计原则中有一条非常重要的一条:类应该对扩展开放,对修改
阅读全文
摘要:我们将事件稍稍加以抽象,发现事件具有某些共同特点,比如事件其实不是孤立存在,它只是某个流程或者工序的一个特殊的“点”,可以理解为时间点,也可以理解为逻辑的点;其次,事件上可以绑定一些“动作”,比如发送一条短信或者发送一个邮件;第三,我可以绑定,当然也可以解绑,如果我反感频频的短信提醒,我可以选择不发短信,我自己去查看账户余额;第四,这些动作和主流程往往并没有直接的关系,往往是“附加”的:我已经付完款了,你发短信或者不发,发邮件或者直接客服通知我其实影响不大,并不影响我购物这个行为本身——反正我已经付完款,预期不久就会收到商品了。
阅读全文
摘要:写代码需要站在巨人的肩膀上,将主要精力集中在自己所需要实现的业务上面,避免反复搭建基础服务,重复造轮子。PHP框架就是这样一些巨人的“肩膀”,使得我们“站”得更高,“看”得更远。像PHP本身有着不断迭代和升级的历史一样,PHP框架也有着自己的发展历史,从简单到复杂,从低级到高级,从面向过程到面向对象
阅读全文
摘要:学习任何一门学问,往往都是从起基本的概念学起。万丈高楼平地起,这些基本概念就是高楼的基石,必须做详尽的分析。我们知道,Yii2是一款脉络清晰的框架,理顺了基础的概念和基本功能,学习更高级和复杂的功能就容易多了。Yii2是一款纯面向对象的框架,它对类的功能做了扩充:PHP类的功能分为属性和方法,而Yi
阅读全文