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