首页 > 代码库 > 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.