创建帮助类
有许多内置的框架帮助类,例如yii\helpers命名空间下的StringHelper。这里包含了很多有用的静态方法,用于操纵字符串、文件、数组和其它目标。
在需要情况下,对于额外的行为,你可以创建一个自己的帮助类,并将任何静态函数放在里边。例如,我们在本小节中事先了数字帮助类。
准备
按照官方指南http://www.yiiframework.com/doc-2.0/guide-start-installation.html的描述,使用Composer包管理器创建一个新的yii2-app-basic应用。
如何做…
- 在你的项目中创建
helpers文件夹,以及NumberHelper类:
<?phpnamespace app\helpers;class NumberHelper{public static function format($value, $decimal = 2){return number_format($value, $decimal, '.', ',');}}
- 添加
actionNumbers方法到NumberHelper:
<?php...class SiteController extends Controller{…public function actionNumbers(){return $this->render('numbers', ['value' => 18878334526.3]);}}
- 添加
views/site/numbers.php视图:
<?phpuse app\helpers\NumberHelper;use yii\helpers\Html;/* @var $this yii\web\View *//* @var $value float */$this->title = 'Numbers';$this->params['breadcrumbs'][] = $this->title;?><div class="site-numbers"><h1><?= Html::encode($this->title) ?></h1><p>Raw number:<br /><b><?= $value ?></b></p><p>Formatted number:<br /><b><?= NumberHelper::format($value) ?></b></p></div>
- 打开这个动作。你将会看到如下截图:

在其它例子中,你可以指定其它数量的十进制数。观察如下例子:
NumberHelper::format($value, 3)
工作原理…
Yii2中任何帮助类只是函数的集合,在对应的类中以静态方法实现。
你可以使用一个帮助类用于实现任何类型的输出,操纵任何变量的任何值,以及其它例子。
注意:通常,静态帮助类是轻量干净的函数,有少数几个参数。避免将你的业务逻辑和其它复杂的操纵到帮助类中。在其它情况中,使用小组件或者其它组件,而不是帮助类。
参考
欲了解更多信息,参考:
http://www.yiiframework.com/doc-2.0/guide-helper-overview.html
例如对于内置帮助类,参考框架中helpers文件夹下的源代码。对于框架,参考:
https://github.com/yiisoft/yii2/tree/master/framework/helpers。
