Yii框架base包代码分析
周日闲来无事,打开Yii的源代码学习一下,今天主要看的代码都是base包里面的,也就是框架根目录下的base目录里的代码。这个目录里的代码不多,但是类很多,而且这些类对整个框架来说至关重要,都是非常基本的组件。老实说,这里面的代码,我已经看了无数次了,但是总觉得常看常新,转念一想,这也实属正常,毕竟这是原作者数年框架开发经验的结晶,岂是我这等工作一两年的菜鸟能随便吃透的?
最近又玩了两次Visual Paradigm这个软件,觉得自己操作水平又有进步,甚感欣喜,所以今天既然分析源代码,就正好再练练手,于是乎,我开始用VP UML开始画base包里的类,得图如下。(说明:这个图是基于Yii的1.1.8版本,另外这里面少了两个类,因为这两个类的功能比较特殊,我没有细看,所以也就没有画在图里,看后面是不是有兴致再来专门画一张,缺失的两个类是CSecurityManager和CStatePersister。)
Yii框架中验证器的allowEmpty属性
Yii框架自带验证器这个包,提供了一组常见各类属性的验证器。如果使用Gii代码生成工具创建model,会根据数据库字段的属性默认生成一些验证器的配置。在配置验证器的时候,很多验证器都有以后属性叫做allowEmpty,这个属性的真正逻辑却不是看上去的那个意思。
数据库里的字段,有个属性,叫NULL,就是字段是否允许为空值,allowEmpty听起来跟这个NULL的约束是一样的,但是实际看验证器的代码:
protected function validateAttribute($object,$attribute)
Yii框架的Log系统的分析
昨天阅读了Yii框架中log部分的源代码,框架提供了灵活、强大的log功能,如果不是非常特殊的需求,框架中自带的类就已经能够满足一般的应用的需求了。实现log功能的源代码被存放在 framework/logging 目录下,这个目录下的代码都包含在包system.logging中。本文简要介绍一下我昨天阅读代码的所得。
视频教程:使用Yii框架开发Blog
Yii框架的官方网站上,有一个教学用demo,就是使用Yii框架开发一个blog。有非常详尽的文字描述,步骤基本也比较清楚。一遍走下来,基本上就差不多都学懂了。
上周正好要在公司做分享,害怕当堂演示会说不好,浪费时间,就在家里自己将blog的开发过程录制成了视频,这是我第一次录制视频,觉得格外新鲜,遂决定在这里分享给大家。大家一起乐一乐,O(∩_∩)O哈哈~
第0集 Blog功能需求及应用骨架搭建
MVC最佳实践
前一段日子,写了一篇《MVC就是一个选择题》,重点描述了我对MVC模式的迷惑。随着我对这个模式应用时间的深入,渐渐感到得心应手,这个模式早在30多年前就已经发明了,确实经受了时间的考验,可以说是千锤百炼。但是,实践过程中,我也发现,更多的时候照猫画虎还是有很多弊端的,想要真正做好MVC的选择题,必须在项目中不断犯错误,不断修正,才能逐渐走上正轨。我参加的项目主要运用了Yii框架,是目前比较流行的一个Web开发框架。随着前不久,1.1.6版本的发布,我发现Yii框架的文档中,多了一篇MVC最佳实践的文章。我想,这个文章对于初学者来说,应该具备相当的指导性,而且指导相当具体。如果也有跟我相同的迷茫,应该好好钻研一下这篇文章,并且身体力行去验证之,这里给出链接。我在这篇文章中,就是概括简述一下那篇文档的内容。
使用Gii时出现403错误
在Yii框架中,使用Gii代码生成工具之前,首先要编辑好配置文件才能访问。一般,都是默认在本地环境安装了Yii框架,所以书里的范例写的时候,很多都没有提,要配置IP限制。我正好在学习过程中,使用了Linux虚拟机来学习Yii开发,结果配置完了,发现访问Gii时候出现403错误。在网上查了一下,可以检查一下自己的配置是否限制了IP。
'gii'=>array(
'class'=>'system.gii.GiiModule',

Most Commented Posts