mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 06:15:19 +08:00
draft idea of action based responses
This commit is contained in:
@ -7,6 +7,8 @@
|
||||
|
||||
namespace yii\base;
|
||||
|
||||
use Yii;
|
||||
|
||||
/**
|
||||
* Action is the base class for all controller action classes.
|
||||
*
|
||||
@ -40,6 +42,21 @@ class Action extends Component
|
||||
*/
|
||||
public $controller;
|
||||
|
||||
private $_response;
|
||||
|
||||
public function getResponse()
|
||||
{
|
||||
if ($this->_response === null) {
|
||||
$this->_response = Yii::$app->createResponse();
|
||||
}
|
||||
return $this->_response;
|
||||
}
|
||||
|
||||
public function setResponse($response)
|
||||
{
|
||||
$this->_response = $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param string $id the ID of this action
|
||||
@ -75,6 +92,8 @@ class Action extends Component
|
||||
throw new InvalidConfigException(get_class($this) . ' must define a "run()" method.');
|
||||
}
|
||||
$args = $this->controller->bindActionParams($this, $params);
|
||||
return call_user_func_array(array($this, 'run'), $args);
|
||||
$response = $this->getResponse();
|
||||
$response->result = call_user_func_array(array($this, 'run'), $args);
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user