Composants
Catégorie :
Manuel
Cet article est une traduction de Components
Les composants sont conçus pour étendre les possibilités des controlleurs dans certaines situations.
Plutot que de modifier l'architecture de Cake, il plus simple d'écrire un composant.
Les composants sont aux controlleurs ce que sont les helpers aux vues. Excepté que les composants comportent du code logique alors que les helpers ne sont censés comporter que de l'affichage.
Ainsi, lorsque vient la question "Je tente de faire ceci. Dois-je utiliser un helper ou un composant ?"
La réponse est simple : Cela modifie-t-il le code logique ou la présentation ?
Si c'est la présentation, il vous faut un helper; sinon, il vous faut un composant.
Créez votre propre composant
Pour créer un composant, créez un fichier dans le répertoire
app/controllers/components/.
Supposons que vous avez créé le fichier
foo.php.
Votre composant pourrait ressembler à celà :
class FooComponent extends Object
{
var $someVar = null;
var $controller = true;
function startup(&$controller)
{
// This method takes a reference to the controller which is loading it.
// Perform controller initialization here.
}
function doFoo()
{
$this->someVar = 'foo';
}
}
Maintenant, pour utiliser le composant, vous devez placer, dans votre controlleur, le code suivant :
var $components = array('Foo');
A l'intérieur de votre controlleur, vous pouvez maintenant utiliser :
$this->Foo->doFoo();
Le composant obtiens accès au controlleur via la méthode startup() définie plus haut. Cette méthode est appellée juste après Controlleur::beforeFilter().
Cela vous permet de modifier les paramètres de votre composant dans la méthode beforeFilter.
Pour utiliser vos modèles à l'intérieur de vos composants, vous devez créer une instance de celui-ci, comme ceci :
$foo =& new Foo();
Vous pouvez également utiliser d'autres composants à l'intérieur d'un composant.
Par exemple, pour utiliser le composant Session :
var $components = array('Session');