Attribut Template


1Présentation

L'attribut \Temma\Attributes\Template permet de définir le chemin vers le fichier de template à utiliser pour un contrôleur ou une action.


2Paramètres

L'attribut propose deux paramètres :

  • $template : (null|string) Chemin vers le fichier de template à utiliser.

    Équivalent à la méthode _template() des contrôleurs.

    Ce paramètre peut prendre explicitement la valeur null, et dans ce cas c'est la valeur par défaut (controller/action.tpl) qui est utilisée.

  • $prefix : (null|string) Préfixe à ajouter au chemin du template qui sera utilisé.

    Équivalent à la méthode _templatePrefix() des contrôleurs.

    Ce paramètre peut prendre explicitement la valeur null, et dans ce cas le préfixe de template sera remis à zéro.


3Exemples

Pour que toutes les actions d'un contrôleur utilisent le même template :

use \Temma\Attributes\Template as TµTemplate;

#[TµTemplate('myController/index.tpl')]
class MyController extends \Temma\Web\Controller {
    // ...
}

Pour qu'une action spécifique utilise le template défini :

use \Temma\Attributes\Template as TµTemplate;

class MyController extends \Temma\Web\Controller {
    #[TµTemplate('otherController/someAction.tpl')]
    public function myAction() {
        // ...
    }
}

Pour ajouter un préfixe aux templates de toutes les actions d'un contrôleur :

use \Temma\Attributes\Template as TµTemplate;

#[TµTemplate(prefix: 'special')]
class MyController extends \Temma\Web\Controller {
    // utilise le template "special/myController/myAction.tpl"
    public function myAction() {
        // ...
    }

    // utilise le template "special/index.tpl"
    #[TµTemplate('index.tpl')]
    public function action2() {
        // ...
    }

    // utilise le template "myController/action3.tpl"
    #[TµTemplate(prefix: null)]
    public function action3() {
        // ...
    }
}