helpers.md 1.66 KB
Newer Older
Qiang Xue committed
1 2 3
Helper Classes
==============

Larry Ullman committed
4 5
Yii provides many helper classes to help simplify some common coding tasks, such as string or array manipulations,
HTML code generation, and so forth. These helper classes are organized under the `yii\helpers` namespace and
Qiang Xue committed
6
are all static classes (meaning they contain only static properties and methods and should not be instantiated).
Larry Ullman committed
7 8 9


You use a helper class by directly calling its static method:
Qiang Xue committed
10

Qiang Xue committed
11
```php
Qiang Xue committed
12 13 14
use yii\helpers\ArrayHelper;

$c = ArrayHelper::merge($a, $b);
Qiang Xue committed
15
```
Qiang Xue committed
16 17 18 19

Extending Helper Classes
------------------------

Larry Ullman committed
20 21
To make helper classes easier to extend, Yii breaks each into two classes: a base class (e.g. `BaseArrayHelper`)
and a concrete class (e.g. `ArrayHelper`). When you use a helper, you should only use the concrete version, never use the base class.
Qiang Xue committed
22

Larry Ullman committed
23
If you want to customize a helper, perform the following steps (using `ArrayHelper` as an example):
Qiang Xue committed
24

Larry Ullman committed
25 26 27 28
1. Name your class the same as the concrete class provided by Yii, including the namespace: `yii\helpers\ArrayHelper`
2. Extend your class from the base class: `class ArrayHelper extends \yii\helpers\BaseArrayHelper`
3. In your class, override any method or property as needed, or add new methods or properties
4. Tell your application to use your version of the helper class by including the following line of code in the bootstrap script:
Qiang Xue committed
29 30 31 32 33

```php
Yii::$classMap['yii\helpers\ArrayHelper'] = 'path/to/ArrayHelper.php';
```

Larry Ullman committed
34
Step 4 above will instruct the Yii class autoloader to load your version of the helper class instead of the oneincluded in the Yii distribution.
Qiang Xue committed
35

Larry Ullman committed
36
> Tip: You can use `Yii::$classMap` to replace ANY core Yii class with your own customized version, not just helper classes.