3.5.4.2 $components, $helpers et $uses
Les autres attributs les plus souvent utilisés permettent d'indiquer à CakePHP quels assistants (helpers), composants (components) et modèles vous utiliserez avec le contrôleur courant. Utiliser ces attributs rend ces classes MVC, fournies par $components et $uses, disponibles pour le contrôleur, sous la forme de variables de classe ($this->NomModele, par exemple) et celles fournies par $helpers, disponibles pour la vue comme une variable référence à l'objet ($nomassistant).
Chaque contrôleur a déjà accès, par défaut, à certaines de ces classes, donc vous n'avez pas besoin de les redéfinir.
Les contrôleurs ont accès par défaut à leur modèle primaire respectif. Notre contrôleur Recettes aura donc accès à son modèle Recette, disponible via $this->Recette, et notre contrôleur Produits proposera un accès à son modèle via $this->Produit.Cependant, quand vous autorisez un contrôleur à accéder à d'autres modèles via la variable $uses, le nom du modèle primaire du contrôleur courant doit également être inclus. Ceci est illustré dans l'exemple ci-dessous.
Les assistants (Helpers) Html et Session sont toujours accessibles par défaut, tout comme le composant Session (SessionComponent). Mais si vous choisissez de définir votre propre tableau $helpers dans AppController, assurez-vous d'y inclure Html et Form si vous voulez qu'ils soient toujours disponibles par défaut dans vos propres contrôleurs. Pour en savoir plus au sujet de ces classes, assurez-vous de regarder leurs sections respectives plus loin dans le manuel.
Jetons maintenant un œil sur la façon d'indiquer à CakePHP que vous avez dans l'idée d'utiliser d'autres classes MVC :
<?php
class RecettesController extends AppController {
var $name = 'Recettes';
var $uses = array('Recette', 'Utilisateur');
var $helpers = array('Ajax');
var $components = array('Email');
}
?>
<?phpclass RecettesController extends AppController {var $name = 'Recettes';var $uses = array('Recette', 'Utilisateur');var $helpers = array('Ajax');var $components = array('Email');}?>
Toutes ces variables sont fusionnées (merged) avec leurs valeurs héritées, par conséquent ce n'est pas nécessaire de re-déclarer (par exemple) le helper Form ou tout autre déclaré dans votre contrôleur App.
Si vous ne souhaitez pas utiliser un modèle dans votre contrôleur, indiquez var $uses = null ou var $uses = array(). Ceci vous permettra d'utiliser un contrôleur sans la nécessité d'un fichier de modèle correspondant.


























