Yii框架base包代码分析
周日闲来无事,打开Yii的源代码学习一下,今天主要看的代码都是base包里面的,也就是框架根目录下的base目录里的代码。这个目录里的代码不多,但是类很多,而且这些类对整个框架来说至关重要,都是非常基本的组件。老实说,这里面的代码,我已经看了无数次了,但是总觉得常看常新,转念一想,这也实属正常,毕竟这是原作者数年框架开发经验的结晶,岂是我这等工作一两年的菜鸟能随便吃透的?
最近又玩了两次Visual Paradigm这个软件,觉得自己操作水平又有进步,甚感欣喜,所以今天既然分析源代码,就正好再练练手,于是乎,我开始用VP UML开始画base包里的类,得图如下。(说明:这个图是基于Yii的1.1.8版本,另外这里面少了两个类,因为这两个类的功能比较特殊,我没有细看,所以也就没有画在图里,看后面是不是有兴致再来专门画一张,缺失的两个类是CSecurityManager和CStatePersister。)
ExtJS 4 的MVC
ExtJS是我听说了很久的一个js框架了,但是从来就没有用过,读研期间寝室里有个小哥在用,不过那时候醉心于WordPress开发,也懒得理会了。现在公司里,有个上线系统用到了这个框架中的一个TreePanel组件,整个界面上,就正中间扔了一个tree panel,而且不知道什么原因,CSS还有bug,把按钮都搞破了,弄得丑陋不堪,我于是自告奋勇,仔细调试,终于修复了那个显示上的bug,从此算是初次结识了ExtJS。它真正吸引我的原因是,它能够把富客户端应用的开发,从美工和基础交互中解放出来,只需要专注于业务逻辑开发即可,从而让后台工程师也能够有能力快速开发外观专业的网站应用系统。我觉得这真是功德无量的一个事情。(如果我直觉没错,Flex框架也是这一类东西,这也是我对其有兴趣的原因,当然还没有时间尝试)
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功能需求及应用骨架搭建
使用Gii时出现403错误
在Yii框架中,使用Gii代码生成工具之前,首先要编辑好配置文件才能访问。一般,都是默认在本地环境安装了Yii框架,所以书里的范例写的时候,很多都没有提,要配置IP限制。我正好在学习过程中,使用了Linux虚拟机来学习Yii开发,结果配置完了,发现访问Gii时候出现403错误。在网上查了一下,可以检查一下自己的配置是否限制了IP。
'gii'=>array(
'class'=>'system.gii.GiiModule',

Most Commented Posts