CAction
鍖 | system.web.actions |
---|---|
缁ф壙 | abstract class CAction » CComponent |
瀹炵幇 | IAction |
瀛愮被 | CCaptchaAction, CInlineAction, CViewAction, CWebServiceAction |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CAction.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
婧愮爜 | framework/web/actions/CAction.php |
CAction鏄墍鏈夋帶鍒跺櫒鍔ㄤ綔绫荤殑鍩虹被銆
CAction鐢ㄥ垎寮鐨勭被鏂囦欢鎻愪緵浜嗕竴涓垎鍓蹭竴涓鏉傜殑鎺у埗鍣 鍒板嚑涓畝鍗曠殑鍔ㄤ綔鐨勯斿緞銆
娲剧敓绫诲繀椤诲疄鐜皉un()鏂规硶锛 褰揳ction琚姹傛椂鐢眂ontroller鍙戣捣銆
涓涓猘ction瀹炰緥鑳介氳繃controller灞炴ц闂畠鐨勬帶鍒跺櫒銆
CAction鐢ㄥ垎寮鐨勭被鏂囦欢鎻愪緵浜嗕竴涓垎鍓蹭竴涓鏉傜殑鎺у埗鍣 鍒板嚑涓畝鍗曠殑鍔ㄤ綔鐨勯斿緞銆
娲剧敓绫诲繀椤诲疄鐜皉un()鏂规硶锛 褰揳ction琚姹傛椂鐢眂ontroller鍙戣捣銆
涓涓猘ction瀹炰緥鑳介氳繃controller灞炴ц闂畠鐨勬帶鍒跺櫒銆
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
controller | CController | 鎷ユ湁杩欎釜鍔ㄤ綔鐨勬帶鍒跺櫒銆 | CAction |
id | string | 鍔ㄤ綔鐨処D銆 | CAction |
鍏叡鏂规硶
灞炴ц缁
controller
灞炴
鍙
public CController getController()
鎷ユ湁杩欎釜鍔ㄤ綔鐨勬帶鍒跺櫒銆
id
灞炴
鍙
public string getId()
鍔ㄤ綔鐨処D銆
鏂规硶璇︾粏
__construct()
鏂规硶
public void __construct(CController $controller, string $id)
| ||
$controller | CController | 鎷ユ湁杩欎釜鍔ㄤ綔鐨勬帶鍒跺櫒銆 |
$id | string | 鍔ㄤ綔鐨処D銆 |
婧愮爜锛 framework/web/actions/CAction.php#40 (鏄剧ず)
public function __construct($controller,$id)
{
$this->_controller=$controller;
$this->_id=$id;
}
鏋勯犳柟娉曘
getController()
鏂规硶
public CController getController()
| ||
{return} | CController | 鎷ユ湁杩欎釜鍔ㄤ綔鐨勬帶鍒跺櫒銆 |
婧愮爜锛 framework/web/actions/CAction.php#49 (鏄剧ず)
public function getController()
{
return $this->_controller;
}
getId()
鏂规硶
public string getId()
| ||
{return} | string | 鍔ㄤ綔鐨処D銆 |
runWithParams()
鏂规硶
锛堝彲鐢ㄨ嚜 v1.1.7锛
public boolean runWithParams(array $params)
| ||
$params | array | 璇锋眰鍙傛暟锛堥敭鍚=>閿硷級 |
{return} | boolean | 鍛藉悕鍙傛暟鏄惁鏈夋晥鐨 |
婧愮爜锛 framework/web/actions/CAction.php#69 (鏄剧ず)
public function runWithParams($params)
{
$method=new ReflectionMethod($this, 'run');
if($method->getNumberOfParameters()>0)
return $this->runWithParamsInternal($this, $method, $params);
else
return $this->run();
}
杩愯甯︽湁璇锋眰鍙傛暟鐨勫璞° 杩欎釜鏂规硶閫氳繃CController::runAction()鍐呴儴璋冪敤銆
runWithParamsInternal()
鏂规硶
锛堝彲鐢ㄨ嚜 v1.1.7锛
protected boolean runWithParamsInternal(mixed $object, ReflectionMethod $method, array $params)
| ||
$object | mixed | 瑕佹墽琛岀殑瀵硅薄鐨勬柟娉 |
$method | ReflectionMethod | 鏂规硶鏄犲皠 |
$params | array | 鍛藉悕鍙傛暟 |
{return} | boolean | 鍛藉悕鍙傛暟鏄惁鏈夋晥鐨 |
婧愮爜锛 framework/web/actions/CAction.php#87 (鏄剧ず)
protected function runWithParamsInternal($object, $method, $params)
{
$ps=array();
foreach($method->getParameters() as $i=>$param)
{
$name=$param->getName();
if(isset($params[$name]))
{
if($param->isArray())
$ps[]=is_array($params[$name]) ? $params[$name] : array($params[$name]);
else if(!is_array($params[$name]))
$ps[]=$params[$name];
else
return false;
}
else if($param->isDefaultValueAvailable())
$ps[]=$param->getDefaultValue();
else
return false;
}
$method->invokeArgs($object,$ps);
return true;
}
鎵ц涓涓甫鏈夊懡鍚嶅弬鏁扮殑瀵硅薄鐨勬柟娉曘 杩欎釜鏂规硶鏄唴閮ㄤ娇鐢ㄣ