?
本文檔使用 PHP中文網(wǎng)手冊 發(fā)布
注意:這部分正在開發(fā)中。
Yii 提供許多類來簡化常見編碼,如對字條串或數(shù)組的操作, HTML 代碼生成,等等。這些助手類被編寫在命名空間?yii\helpers
?下,并且 全是靜態(tài)類 (就是說它們只包含靜態(tài)屬性和靜態(tài)方法,而且不能實(shí)例化)。
可以通過調(diào)用其中一個靜態(tài)方法來使用助手類,如下:
use yii\helpers\Html;
echo Html::encode('Test > test');
注意:為了支持?自定義助手類,Yii 將每一個助手類 分隔成兩個類:一個基類 (例如?
BaseArrayHelper
) 和一個具體的類 (例如ArrayHelper
). 當(dāng)使用助手類時,應(yīng)該僅使用具體的類版本而不使用基類。
Yii 發(fā)布版中提供以下核心助手類:
如果想要自定義一個核心助手類 (例如 yii\helpers\ArrayHelper),你應(yīng)該創(chuàng)建一個新的類繼承 helpers對應(yīng)的基類 (例如 yii\helpers\BaseArrayHelper) 并同樣的命 名你的這個類 (例如 yii\helpers\ArrayHelper),包括它的命名空間。這個類 會用來替換框架最初的實(shí)現(xiàn)。
下面示例顯示了如何自定義 yii\helpers\ArrayHelper 類的 yii\helpers\ArrayHelper::merge() 方法:
<?php
namespace yii\helpers;
class ArrayHelper extends BaseArrayHelper{
public static function merge($a, $b)
{
// 你自定義的實(shí)現(xiàn)
}
}
將你的類保存在一個名為?ArrayHelper.php
?的文件中。該文件可以在任何目錄,例如?@app/components
。
接下來,在你的應(yīng)用程序?入口腳本?處,在引入的?yii.php
?文件后面 添加以下代碼行,用?Yii 自動加載器?來加載自定義類 代替框架的原始助手類:
Yii::$classMap['yii\helpers\ArrayHelper'] = '@app/components/ArrayHelper.php';