Changes
Title
unchanged
Behaviors & events
Category
unchanged
Tutorials
Yii version
unchanged
Tags
unchanged
Content
changed
[...]
For example, [enabling gzip](http://www.yiiframework.com/doc/cookbook/39/) compression on the output could be done via extending CWebApplication. But because there are entry points for event handlers, one can do this:
```php
Yii::app()->onbBeginRequest = create_function('$event', 'return ob_start("ob_gzhandler");'),
Yii::app()->on
eEndRequest = create_function('$event', 'return ob_end_flush();'),
```[...]
```
So, basically, it allows you to build a list of function calls that can later be executed, in the order they were added. It can save you passing around a lot of object refs and building conditional code, since you can still raise the event, even if it doesn't do anything.
##Behaviors[...]
In an OO language like Ruby, it's quite possible to start with an completely empty object and simply build its behavior as you go along. Yii provides this behavior with a little magic. The key is that the class you wish to add the behavior from must extend Cbehavior.[...]
So, in this case, you are extending the functionality of an object with functionality of another object.
After studying this cookbook page it isyou are encouraged to reread the [corresponding guide page](http://www.yiiframework.com/doc/guide/basics.component) as it contains advanced information (for example, if you are familiar with interfaces, you might find it enough to implement IBehavior before extending CBehavior).
- Russian version: [Поведение и события](http://phptime.ru/blog/yii/31.html)