10.1.7 Créer un Contrôleur "Posts"
Nous allons maintenant créer un contrôleur pour nos posts.
Le contrôleur est l'endroit où s'exécutera toute la logique métier pour l'interaction du processus de post. En un mot, c'est l'endroit où vous jouez avec les modèles et où les tâches liées aux posts s'exécutent. Nous placerons ce nouveau contrôleur dans un fichier appelé posts_controller.php au sein du répertoire /app/controllers. Voici à quoi devrait ressembler le contrôleur de base :
<?php
class PostsController extends AppController {
var $name = 'Posts';
}
?> <?phpclass PostsController extends AppController {var $name = 'Posts';}?>
A présent, ajoutons une action à notre contrôleur. Les actions représentent souvent une simple fonction ou une interface dans une application. Par exemple, lorsque les utilisateurs requêtent la page www.exemple.com/posts/index (ce qui est équivalent à www.exemple.com/posts/), ils pourraient s'attendre à voir une liste de posts. Le code pour cette action devrait ressembler à quelque chose comme çà :
<?php
class PostsController extends AppController {
var $name = 'Posts';
function index() {
$this->set('posts', $this->Post->find('all'));
}
}
?> <?phpclass PostsController extends AppController {var $name = 'Posts';function index() {$this->set('posts', $this->Post->find('all'));}}?>
Laissez-moi vous expliquer un peu cette action. En définissant la fonction index() dans notre Contrôleur "Posts", les utilisateurs peuvent maintenant accéder à cette logique en demandant www.exemple.com/posts/index. De la même façon, si nous devions définir une fonction nommée foobar(), les utilisateurs auraient la possibilité d'accéder à www.exemple.com/posts/foobar.
Note: vous pourriez être tenté de nommer vos contrôleurs et vos actions d'une certaine manière pour obtenir une certaine URL. Résistez à cette tentation. Suivez les conventions CakePHP (le nom des contrôleurs au pluriel, etc.) et nommez vos actions de façon lisible et compréhensible. Vous pouvez lier les URLs à votre code en utilisant ce qu'on appelle des "routes", on le verra plus tard.
La seule instruction que cette action utilise est set(), pour transmettre les données du contrôleur à la vue (que nous créerons à la prochaine étape). La ligne définit la variable de vue appelée 'posts' qui est égale à la valeur de retour de la méthode find('all') du modèle Post. Notre modèle Post est automatiquement disponible via $this->Post, parce que nous avons suivi les conventions de nommage de Cake.
Pour en apprendre plus sur les contrôleurs de Cake, consultez notre chapitre "Développer avec CakePHP" à la section : "Contrôleurs".
