diff options
Diffstat (limited to 'framework/web/actions/CInlineAction.php')
| -rw-r--r-- | framework/web/actions/CInlineAction.php | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/framework/web/actions/CInlineAction.php b/framework/web/actions/CInlineAction.php new file mode 100644 index 0000000..18472e4 --- /dev/null +++ b/framework/web/actions/CInlineAction.php @@ -0,0 +1,53 @@ +<?php +/** + * CInlineAction class file. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @link http://www.yiiframework.com/ + * @copyright Copyright © 2008-2011 Yii Software LLC + * @license http://www.yiiframework.com/license/ + */ + + +/** + * CInlineAction represents an action that is defined as a controller method. + * + * The method name is like 'actionXYZ' where 'XYZ' stands for the action name. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @version $Id: CInlineAction.php 3137 2011-03-28 11:08:06Z mdomba $ + * @package system.web.actions + * @since 1.0 + */ +class CInlineAction extends CAction +{ + /** + * Runs the action. + * The action method defined in the controller is invoked. + * This method is required by {@link CAction}. + */ + public function run() + { + $method='action'.$this->getId(); + $this->getController()->$method(); + } + + /** + * Runs the action with the supplied request parameters. + * This method is internally called by {@link CController::runAction()}. + * @param array $params the request parameters (name=>value) + * @return boolean whether the request parameters are valid + * @since 1.1.7 + */ + public function runWithParams($params) + { + $methodName='action'.$this->getId(); + $controller=$this->getController(); + $method=new ReflectionMethod($controller, $methodName); + if($method->getNumberOfParameters()>0) + return $this->runWithParamsInternal($controller, $method, $params); + else + return $controller->$methodName(); + } + +} |
