CInlineFilter
鍖 | system.web.filters |
---|---|
缁ф壙 | class CInlineFilter » CFilter » CComponent |
瀹炵幇 | IFilter |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CInlineFilter.php 3026 2011-03-06 10:41:56Z haertl.mike $ |
婧愮爜 | framework/web/filters/CInlineFilter.php |
CInlineFilter浠h〃浣滀负鎺у埗鍣ㄧ殑鏂规硶瀹氫箟涓涓繃婊ゅ櫒銆
CInlineFilter杩愯閭d簺鍦ㄦ帶鍒跺櫒涓互鈥檉ilterXYZ($action)鈥樿繖鏍峰舰寮忓畾涔夛紝 鍚嶅瓧鈥榅YZ鈥欏彲浠ヤ粠name灞炴т腑璇诲彇銆
CInlineFilter杩愯閭d簺鍦ㄦ帶鍒跺櫒涓互鈥檉ilterXYZ($action)鈥樿繖鏍峰舰寮忓畾涔夛紝 鍚嶅瓧鈥榅YZ鈥欏彲浠ヤ粠name灞炴т腑璇诲彇銆
鍏叡鏂规硶
灞炴ц缁
name
灞炴
public string $name;
杩囨护鍣ㄥ悕瀛椼傗榅YZ鈥欎唬琛ㄧ潃鈥榝ilterXYZ鈥欒繃婊ゆ柟娉曘
鏂规硶璇︾粏
create()
鏂规硶
public static CInlineFilter create(CController $controller, string $filterName)
| ||
$controller | CController | 杩囨护鏂规硶鐨勫涓绘帶鍒跺櫒銆 |
$filterName | string | 杩囨护鍣ㄥ悕瀛椼 |
{return} | CInlineFilter | 瀹炰緥鍖栫殑瀵硅薄銆 |
婧愮爜锛 framework/web/filters/CInlineFilter.php#38 (鏄剧ず)
public static function create($controller,$filterName)
{
if(method_exists($controller,'filter'.$filterName))
{
$filter=new CInlineFilter;
$filter->name=$filterName;
return $filter;
}
else
throw new CException(Yii::t('yii','Filter "{filter}" is invalid. Controller "{class}" does not have the filter method "filter{filter}".',
array('{filter}'=>$filterName, '{class}'=>get_class($controller))));
}
鍒涘缓涓涓唴宓岀殑杩囨护鍣ㄥ疄渚嬨 杩欎釜鍒涘缓鏄熀浜庤繃婊ゅ櫒鏄惁浼氬簲鐢ㄥ唴宓岀殑 鏂规硶鍚嶅瓧鎻忚堪鍜屽姩浣滃悕瀛楁潵瀹氱殑銆
filter()
鏂规硶
public void filter(CFilterChain $filterChain)
| ||
$filterChain | CFilterChain | 閫忚繃杩囨护鍣ㄥ凡鍚姩銆 |
婧愮爜锛 framework/web/filters/CInlineFilter.php#56 (鏄剧ず)
public function filter($filterChain)
{
$method='filter'.$this->name;
$filterChain->controller->$method($filterChain);
}
鎵ц杩囨护銆 杩欎釜鏂规硶璋冪敤瀹氫箟鍦ㄦ帶鍒跺櫒閲岄潰鐨勮繃婊ゆ柟娉曠殑銆