Php/docs/class.yaf-controller-abstract

From Get docs

(Yaf >=1.0.0)

Introduction

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.

Class synopsis


abstract Yaf_Controller_Abstract {

/* Properties */

public $actions

protected $_module

protected $_name

protected $_request

protected $_response

protected $_invoke_args

protected $_view

/* Methods */

final private __construct ( )

protected display ( string $tpl [, array $parameters ] ) : bool

public forward ( string $action [, array $paramters ] ) : void

public getInvokeArg ( string $name ) : void

public getInvokeArgs ( ) : void

public getModuleName ( ) : string

public getName ( ) : string

public getView ( ) : Yaf_View_Interface

public getViewpath ( ) : string

public init ( ) : void

public initView ([ array $options ] ) : void

public redirect ( string $url ) : bool

protected render ( string $tpl [, array $parameters ] ) : string

public setViewpath ( string $view_directory ) : void

}

Properties

actions

You can also define a action method in a separate PHP script by using this property and Yaf_Action_Abstract.

Example #1 define action in a separate file

<?phpclass IndexController extends Yaf_Controller_Abstract {    protected $actions = array(        /** now dummyAction is defined in a separate file */        "dummy" => "actions/Dummy_action.php",    );    /* action method may have arguments */    public indexAction($name, $id) {       /* $name and $id are unsafe raw data */       assert($name == $this->getRequest()->getParam("name"));       assert($id   == $this->_request->getParam("id"));    }}?>

Example #2 Dummy_action.php

<?phpclass DummyAction extends Yaf_Action_Abstract {    /* a action class shall define this method  as the entry point */    public execute() {    }}?>

_module

module name

_name

controller name

_request

current request object

_response

current response object

_invoke_args
_view

view engine object


Table of Contents