Controller_Abstract
abstract class Controller_Abstract (View source)
\Yaf\Controller_Abstract is the heart of Yaf's system. MVC stands for Model-View-Controller and is a design pattern targeted at separating application logic from display logic.
Every custom controller shall inherit \Yaf\Controller_Abstract.
You will find that you can not define __construct function for your custom controller, thus, \Yaf\Controller_Abstract provides a magic method: \Yaf\Controller_Abstract::init().
If you have defined a init() method in your custom controller, it will be called as long as the controller was instantiated.
Action may have arguments, when a request coming, if there are the same name variable in the request parameters(see \Yaf\Request_Abstract::getParam()) after routed, Yaf will pass them to the action method (see \Yaf\Action_Abstract::execute()).
Note:
These arguments are directly fetched without filtering, it should be carefully processed before use them.
Properties
array | $actions | ||
protected string | $_module | ||
protected string | $_name | ||
protected Request_Abstract | $_request | ||
protected Response_Abstract | $_response | ||
protected array | $_invoke_args | ||
protected View_Interface | $_view |
Methods
No description
No description
retrieve current request object
retrieve current response object
get the controller's module name
retrieve view engine
No description
No description
forward current execution process to other action.
Note:
this method doesn't switch to the destination action immediately, it will take place after current flow finish.
Notice, there are 3 available method signatures:
\Yaf\Controller_Abstract::forward ( string $module , string $controller , string $action [, array $parameters ] )
\Yaf\Controller_Abstract::forward ( string $controller , string $action [, array $parameters ] )
\Yaf\Controller_Abstract::forward ( string $action [, array $parameters ] )
redirect to a URL by sending a 302 header
No description
No description
\Yaf\Controller_Abstract::__construct() is final, which means users can not override it. but users can define \Yaf\Controller_Abstract::init(), which will be called after controller object is instantiated.
\Yaf\Controller_Abstract::__construct() is final, which means it can not be overridden. You may want to see \Yaf\Controller_Abstract::init() instead.
Details
protected string
render(string $tpl, array $parameters = null)
No description
protected bool
display(string $tpl, array $parameters = null)
No description
Request_Abstract
getRequest()
retrieve current request object
Response_Abstract
getResponse()
retrieve current response object
string
getModuleName()
get the controller's module name
View_Interface
getView()
retrieve view engine
Response_Abstract
initView(array $options = null)
deprecated
deprecated
No description
bool
setViewpath(string $view_directory)
No description
string
getViewpath()
No description
bool
forward(string $module, string $controller = null, string $action = null, array $parameters = null)
forward current execution process to other action.
Note:
this method doesn't switch to the destination action immediately, it will take place after current flow finish.
Notice, there are 3 available method signatures:
\Yaf\Controller_Abstract::forward ( string $module , string $controller , string $action [, array $parameters ] )
\Yaf\Controller_Abstract::forward ( string $controller , string $action [, array $parameters ] )
\Yaf\Controller_Abstract::forward ( string $action [, array $parameters ] )
bool
redirect(string $url)
redirect to a URL by sending a 302 header
array
getInvokeArgs()
No description
mixed|null
getInvokeArg(string $name)
No description
init()
\Yaf\Controller_Abstract::__construct() is final, which means users can not override it. but users can define \Yaf\Controller_Abstract::init(), which will be called after controller object is instantiated.
final
__construct(Request_Abstract $request, Response_Abstract $response, View_Interface $view, array $invokeArgs = null)
\Yaf\Controller_Abstract::__construct() is final, which means it can not be overridden. You may want to see \Yaf\Controller_Abstract::init() instead.