Yii的behavior用起来是十分方便的,官方的文档也很多,我不多嘴一一解释,我只说一些简单的用法
如果你看过PHP5.4,你应该知道5.4多了个新功能traits。
那你可以对着手册看了,你就当yii的behavior就是5.4的traits。
在任何基于CComponents类扩展的类里,都可以用attachBehavior来附加一个行为,这就象5.4的在类里面 use traits类一样
附加行为后,直接可以$this->行为中的方法,嗯,这个与traits也一样。
好吧,来个简单的例子:
PHP traits
- <?php
- class Base {
- public function sayHello() {
- echo 'Hello ';
- }
- }
- trait SayWorld {
- public function sayHello() {
- parent::sayHello();
- echo 'World!';
- }
- }
- class MyHelloWorld extends Base {
- use SayWorld;
- }
- $o = new MyHelloWorld();
- $o->sayHello();
- ?>
Yii的用法:
PHP代码
- <?php
- class xxx extends CBehavior
- {
- public function show(){
- echo "show";
- }
- }
- class test extends CComponents
- {
- public function hello(){
- $this->attachBehavior('唯一标记符',"xxx");
- $this->show();
- }
- }
看看,是不是用法一样?不过这样也带来一个问题。。。TMD,没法在IDE里面自动识别了。
好吧,只能这样折腾自己了。。忍忍。