(Yaf >=1.0.0)
Yaf_Controller_Abstract est le cœur du système de Yaf. MVC signifie Modèle-Vue-Contrôleur et est un patron de conception destiné à séparer la logique applicative de la logique d'affichage.
Tout contrôleur personnalisé doit hériter de Yaf_Controller_Abstract.
Puisque Yaf_Controller_Abstract::__construct() est appelée par Yaf sans aucun argument, Yaf_Controller_Abstract fournit un point d'entrée alternatif tenant lieu de constructeur : Yaf_Controller_Abstract::init().
Si une méthode init() est définie dans le contrôleur personnalisé, elle sera appelée dès que le contrôleur est instancié.
Une action peut avoir des arguments : lorsqu'une requête arrive, s'il existe après routage des variables de même nom dans les paramètres de la requête (voir Yaf_Request_Abstract::getParam()), Yaf les transmet à la méthode d'action (voir Yaf_Action_Abstract::execute()).
Note:
Ces arguments sont récupérés directement, sans filtrage : ils devraient être traités avec soin avant d'être utilisés.
Il est également possible de définir une méthode d'action dans un script PHP séparé en utilisant cette propriété et Yaf_Action_Abstract.
Exemple #1 Définition d'une action dans un fichier séparé
<?php
class IndexController extends Yaf_Controller_Abstract {
protected $actions = array(
/** désormais dummyAction est définie dans un fichier séparé */
"dummy" => "actions/Dummy_action.php",
);
/* une méthode d'action peut avoir des arguments */
public function indexAction($name, $id) {
/* $name et $id sont des données brutes non sûres */
assert($name == $this->getRequest()->getParam("name"));
assert($id == $this->_request->getParam("id"));
}
}
?>Exemple #2 Dummy_action.php
<?php
class DummyAction extends Yaf_Action_Abstract {
/* une classe d'action doit définir cette méthode comme point d'entrée */
public function execute() {
}
}
?>Le nom du module auquel appartient le contrôleur.
Le nom du contrôleur.
L'objet Yaf_Request_Abstract courant.
L'objet Yaf_Response_Abstract courant.
Les arguments d'invocation transmis à l'action via Yaf_Controller_Abstract::forward(), sous la forme d'un tableau indexé par nom d'argument.
L'objet Yaf_View_Interface utilisé pour le rendu des vues.