首页 > 代码库 > yii源码一
yii源码一
CComponent:
path:framework/base/CComponent.php
overview:This file contains the foundation classes for component-based and event-driven programming.
(包含基于组件和事件驱动编程的基础类,是所有components的基类)
1.property定义
$a=$component->text; // equivalent to $a=$component->getText();$component->text=‘abc‘; // equivalent to $component->setText(‘abc‘);
2.event事件定义
1)事件句柄function handlerName($event) {}
function eventHandler($event) { ... }
添加事件句柄到事件:(也可用attachEventHandler)
$component->onClick=$callback; // or $component->onClick->add($callback);
2)事件:事件名称必须以on开头
3)启用事件raiseEvent()
public function onClick($event){ $this->raiseEvent(‘onClick‘,$event);}
3.behaviors行为
行为是附加到组件components上的实例。可以添加(attachBehavior),拆卸(detachBehavior),也可以启用(enableBehavior)、禁用(disableBehavior).
注意:1.属性名(property)和事件名(event)大小写敏感。
源码分析:
1.重写:
重写__get()和__set()两个魔术方法,便于可以直接调用和设置模型的私有属性;
重写__isset()和__unset()两个魔术方法,便于判断模型的私有属性是否设置和清空属性值;
重写__call()魔术方法,便于调用不存在的或者私有的类方法。
2.事件的有无判断和启用;
3.行为Behavior的添加、删除、启用、禁用;
4.Evaluates a PHP expression。
类:CEvent
overview:CEvent is the base class for all event classes.
类:CEnumerable
overview:CEnumerable is the base class for all enumerable types.
用法:
class TextAlign extends CEnumerable{ const Left=‘Left‘; const Right=‘Right‘;}
调用:TextAlign::Left。
tips:The constant name must be the same as the constant value.