| Package | system.web.actions |
|---|---|
| Inheritance | abstract class CAction » CComponent |
| Implements | IAction |
| Subclasses | CCaptchaAction, CInlineAction, CViewAction, CWebServiceAction |
| Since | 1.0 |
| Source Code | framework/web/actions/CAction.php |
| Property | Type | Description | Defined By |
|---|---|---|---|
| controller | CController | the controller who owns this action. | CAction |
| id | string | id of this action | CAction |
| Method | Description | Defined By |
|---|---|---|
| __call() | Calls the named method which is not a class method. | CComponent |
| __construct() | Constructor. | CAction |
| __get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
| __isset() | Checks if a property value is null. | CComponent |
| __set() | Sets value of a component property. | CComponent |
| __unset() | Sets a component property to be null. | CComponent |
| asa() | Returns the named behavior object. | CComponent |
| attachBehavior() | Attaches a behavior to this component. | CComponent |
| attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
| attachEventHandler() | Attaches an event handler to an event. | CComponent |
| canGetProperty() | Determines whether a property can be read. | CComponent |
| canSetProperty() | Determines whether a property can be set. | CComponent |
| detachBehavior() | Detaches a behavior from the component. | CComponent |
| detachBehaviors() | Detaches all behaviors from the component. | CComponent |
| detachEventHandler() | Detaches an existing event handler. | CComponent |
| disableBehavior() | Disables an attached behavior. | CComponent |
| disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
| enableBehavior() | Enables an attached behavior. | CComponent |
| enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
| evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
| getController() | Returns the controller who owns this action. | CAction |
| getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
| getId() | Returns id of this action | CAction |
| hasEvent() | Determines whether an event is defined. | CComponent |
| hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
| hasProperty() | Determines whether a property is defined. | CComponent |
| raiseEvent() | Raises an event. | CComponent |
| runWithParams() | Runs the action with the supplied request parameters. | CAction |
| Method | Description | Defined By |
|---|---|---|
| runWithParamsInternal() | Executes a method of an object with the supplied named parameters. | CAction |
the controller who owns this action.
id of this action
|
public void __construct(CController $controller, string $id)
| ||
| $controller | CController | the controller who owns this action. |
| $id | string | id of the action. |
public function __construct($controller,$id)
{
$this->_controller=$controller;
$this->_id=$id;
}
Constructor.
|
public CController getController()
| ||
| {return} | CController | the controller who owns this action. |
public function getController()
{
return $this->_controller;
}
|
public string getId()
| ||
| {return} | string | id of this action |
public function getId()
{
return $this->_id;
}
|
public boolean runWithParams(array $params)
| ||
| $params | array | the request parameters (name=>value) |
| {return} | boolean | whether the request parameters are valid |
public function runWithParams($params)
{
$method=new ReflectionMethod($this, 'run');
if($method->getNumberOfParameters()>0)
return $this->runWithParamsInternal($this, $method, $params);
$this->run();
return true;
}
Runs the action with the supplied request parameters. This method is internally called by CController::runAction().
|
protected boolean runWithParamsInternal(mixed $object, ReflectionMethod $method, array $params)
| ||
| $object | mixed | the object whose method is to be executed |
| $method | ReflectionMethod | the method reflection |
| $params | array | the named parameters |
| {return} | boolean | whether the named parameters are valid |
protected function runWithParamsInternal($object, $method, $params)
{
$ps=array();
foreach($method->getParameters() as $i=>$param)
{
$name=$param->getName();
if(isset($params[$name]))
{
if(version_compare(PHP_VERSION,'8.0','>='))
$isArray=($type=$param->getType()) instanceof \ReflectionNamedType && $type->getName()==='array';
else
$isArray=$param->isArray();
if($isArray)
$ps[]=is_array($params[$name]) ? $params[$name] : array($params[$name]);
elseif(!is_array($params[$name]))
$ps[]=$params[$name];
else
return false;
}
elseif($param->isDefaultValueAvailable())
$ps[]=$param->getDefaultValue();
else
return false;
}
$method->invokeArgs($object,$ps);
return true;
}
Executes a method of an object with the supplied named parameters. This method is internally used.
Signup or Login in order to comment.