2.4 KiB
Helpers
注意:这部分正在开发中。
Yii 提供许多类来简化常见编码,如对字条串或数组的操作,
HTML 代码生成,等等。这些助手类被编写在命名空间 yii\helpers 下,并且
全是静态类 (就是说它们只包含静态属性和静态方法,而且不能实例化)。
可以通过调用其中一个静态方法来使用助手类,如下:
use yii\helpers\Html;
echo Html::encode('Test > test');
注意:为了支持 customizing helper classes,Yii 将每一个助手类 分隔成两个类:一个基类 (e.g.
BaseArrayHelper) 和一个 concrete 类 (e.g.ArrayHelper). 当使用助手类时,应该仅使用 concrete 类版本而不使用基类。
Core Helper Classes
Yii 发布版中提供以下核心助手类:
- ArrayHelper
- Console
- FileHelper
- Html
- HtmlPurifier
- Image
- Inflector
- Json
- Markdown
- Security
- StringHelper
- Url
- VarDumper
自定义助手类
如果想要自定义一个核心助手类 (例如 yii\helpers\ArrayHelper),你应该创建一个新的类继承 helpers对应的基类 (例如 yii\helpers\BaseArrayHelper) 并同样的命 名你的这个类 (例如 yii\helpers\ArrayHelper),包括它的命名空间。这个类 会用来替换框架最初的实现。
下面示例显示了如何自定义 yii\helpers\ArrayHelper 类的 yii\helpers\ArrayHelper::merge() 方法:
<?php
namespace yii\helpers;
class ArrayHelper extends BaseArrayHelper
{
public static function merge($a, $b)
{
// your custom implementation
}
}
将你的类保存在一个名为 ArrayHelper.php 的文件中。该文件可以在任何目录,例如 @app/components。
接下来,在你的应用程序 entry script 处,在引入的 yii.php 文件后面
添加以下代码行,用 Yii class autoloader 来加载自定义类
代替框架的原始助手类:
Yii::$classMap['yii\helpers\ArrayHelper'] = '@app/components/ArrayHelper.php';
注意,自定义助手类仅仅用于如果你想要更改 helpers 现有的函数的行为。如果你想为你的应用程序添加附加功能,最好为它创建一个单独的 助手类。