PHP 8.6.0 Beta 3 is available for testing

La classe Yaf_Controller_Abstract

(Yaf >=1.0.0)

Introduction

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.

Synopsis de la classe

abstract class Yaf_Controller_Abstract {
/* Propriétés */
protected $actions;
protected $_module;
protected $_name;
protected $_request;
protected $_response;
protected $_invoke_args;
protected $_view;
/* Méthodes */
public function __construct()
protected function display(string $tpl, ?array $parameters = ?): ?bool
public function forward(string $action, ?array $parameters = ?): ?bool
public function getInvokeArg(string $name): ?string
public function getInvokeArgs(): ?array
public function getModuleName(): ?string
public function getName(): ?string
public function getView(): ?Yaf_View_Interface
public function getViewpath(): ?string
public function init(): void
public function initView(?array $options = ?): ?Yaf_View_Interface
public function redirect(string $url): ?bool
protected function render(string $tpl, ?array $parameters = ?): string|bool|null
public function setViewpath(string $view_directory): ?bool
}

Propriétés

actions

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() {
    }
}
?>

_module

Le nom du module auquel appartient le contrôleur.

_name

Le nom du contrôleur.

_request

L'objet Yaf_Request_Abstract courant.

_response

L'objet Yaf_Response_Abstract courant.

_invoke_args

Les arguments d'invocation transmis à l'action via Yaf_Controller_Abstract::forward(), sous la forme d'un tableau indexé par nom d'argument.

_view

L'objet Yaf_View_Interface utilisé pour le rendu des vues.

Sommaire

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top