la classe Yaf_Controller_Abstract

(Yaf >=1.0.0)

Introduction

Yaf_Controller_Abstract est le coeur 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.

Synopsis de la classe

abstract Yaf_Controller_Abstract {
/* Propriétés */
public $actions ;
protected $_module ;
protected $_name ;
protected $_request ;
protected $_response ;
protected $_invoke_args ;
protected $_view ;
/* Méthodes */
final private __clone ( void ) : void
final private __construct ( void )
protected display ( string $tpl [, array $parameters ] ) : bool
public forward ( string $action [, array $paramters ] ) : void
public getInvokeArg ( string $name ) : void
public getInvokeArgs ( void ) : void
public getModuleName ( void ) : string
public getRequest ( void ) : Yaf_Request_Abstract
public getView ( void ) : Yaf_View_Interface
public getViewpath ( void ) : string
public init ( void ) : void
public initView ([ array $options ] ) : void
public redirect ( string $url ) : bool
protected render ( string $tpl [, array $parameters ] ) : string
public setViewpath ( string $view_directory ) : void
}

Propriétés

actions

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

_module

Nom du module

_name

Nom du contrôleur

_request

L'objet de la requête courante

_response

L'objet de la réponse courante

_invoke_args

_view

Le moteur de visualisation

Sommaire