array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'fr', ), 'this' => array ( 0 => 'class.yaf-controller-abstract.php', 1 => 'Yaf_Controller_Abstract', ), 'up' => array ( 0 => 'book.yaf.php', 1 => 'Yaf', ), 'prev' => array ( 0 => 'yaf-config-simple.valid.php', 1 => 'Yaf_Config_Simple::valid', ), 'next' => array ( 0 => 'yaf-controller-abstract.construct.php', 1 => 'Yaf_Controller_Abstract::__construct', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'fr', 'path' => 'reference/yaf/yaf-controller-abstract.xml', ), 'extra_header_links' => array ( 'rel' => 'alternate', 'href' => '/manual/en/feeds/class.yaf-controller-abstract.atom', 'type' => 'application/atom+xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(Yaf >=1.0.0)
Yaf_Controller_Abstract est le cœur du système Yaf ; architecture MVC (pour Model-View-Controller) permettant de séparer la logique applicative de la logique d'affichage.
Tous les controlleurs personnalisés doivent hérités de la classe Yaf_Controller_Abstract.
Vous devriez vous apercevoir que vous ne pouvez pas définir de fonction __construct pour votre controlleur personnalisé, aussi, la classe Yaf_Controller_Abstract fournit une méthode magique pour cela : Yaf_Controller_Abstract::init().
Si vous avez défini une méthode init() dans votre controlleur personnalisé, elle sera appelée lors de l'instanciation de votre contrôleur.
Les actions peuvent avoir des arguments, lorsqu'une requête arrive, s'il y a la même variable dans les paramètres de la requête (voir Yaf_Request_Abstract::getParam()) après le routage, Yaf les passera à la méthode de l'action (voir la méthode Yaf_Action_Abstract::execute()).
Note:
Ces arguments sont directement récupérés sans filtrage ; il serait plus prudent de les analyser avant de les utiliser.
Vous pouvez aussi 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éfinission d'une action dans un fichier séparé
<?php
class IndexController extends Yaf_Controller_Abstract {
protected $actions = array(
/** maintenant dummyAction est défini dans un fichier séparé */
"dummy" => "actions/Dummy_action.php",
);
/* la méthode de l'action peut avoir des arguments */
public function indexAction($name, $id) {
/* $name et $id sont des données brûtes non sécurisées */
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() {
}
}
?>
Nom du module
Nom du contrôleur
L'objet de la requête courante
L'objet de la réponse courante
Le moteur de visualisation