我的理解是:Behavior的目的就是重用。当把一个Behavior加入到Component后,这个Component就有了这个Behavior的方法、属性、事件。但是我还是搞不清楚什么时候要使用Behavior,各位大神能不能举个例子,什么时候将代码放在Behaviors里面?附上我的代码:classTestBehaviorextendsCBehavior{publicfunctionevents(){returnarray_merge(parent::events(),array('onClick'=>'sayHello'));}publicfunctionsayHello(){echo'helloworld!!!';}}?>Yii::import('ext.behaviors.*');classUserControllerextendsController{//publicfunctionactionGet(){//$com=Yii::createComponent('application.components.TestComponent');//echo$com->getName();//}//publicfunctionactionEvent(){//$com=Yii::createComponent('application.components.TestComponent');//$com->onClick=array($this,'sayHello');//调用了一个不存在属性,会使用魔术方法//$com->onClick(newCEvent($com));//}publicfunctionactionBehavior(){$com=Yii::createComponent('application.components.TestComponent');$com->attachBehavior('test','ext.behaviors.TestBehavior');$com->sayHello();$com->onClick(newCEvent($com));//behavior中的seyHello绑定了onClick。调用onClick就会调用sayHello()}//publicfunctionsayHello(){//header('Content-type:text/html;charset=utf-8');//echo'helloworld';//}}?>
幕布斯6054654
相关分类