S'initier au Zend Framework/Mini blog/Contrôleur
Le contrôleur
modifierLes actions par défauts seront la lecture d'une nouvelle, son ajout, sa modification, son effacement et le listing de toutes les nouvelles. Ses différentes actions sont accessibles directement par l'URL :
Par défaut, c'est le routeur qui réécrit l'URI et redirige vers la bonne action.
- nouvelle/create redirigera vers la bonne page PHP de création de nouvelle. De même le passage de paramètre s'écrit par défaut de la forme :
- nouvelle/read/id/1
Le paramêtre « id » avec la valeur « 1 » sera accessible dans l'action. Idem pour :
- nouvelle/delete/id/123
- nouvelle/update/id/4321
Nous verrons ensuite plus comment personnaliser le routeur pour obtenir une URI plus lisible pour l'humain et les moteurs de recherche.
- nouvelle/read/id/1 peut être réécrite en nouvelle/titre/Premiere_nouvelle
Ce nouvel URI a un titre écrit en français et en clair, c'est pour cela que l'optimisation pour les moteurs de recherche (SEO) peut se faire en parallèle du développement des fonctionnalités d'un site. Avant d'écrire ses actions, la première chose est de charger l'objet dès que l'on instancie le contrôleur. Cela se fait dans le « constructeur » init().
NB: init() aulieu de __construct() permet de ne pas appeler le constructeur de la super-classe. Sans redéfinition, init() est appelée sans aucun paramètre comme dernière instruction de __construct(). Notre objet devrait s’appeler Nouvelle comme l'objet qu'il manipule mais il aurait fallu voir immédiatement l'objet Router pour la réécriture d'URL. Ainsi pour des raisons pratiques, le contrôleur s’appellera Index, car dans le monde du web, l'index est la première chose affichée d'un site.
class IndexController extends Zend_Controller_Action
{
private $_nouvelles;
public function init()
{
$this->_nouvelles= new Nouvelle();
$this->view->headTitle('Mon blog');
}
...
}
L'objet est chargé et accessible depuis la variable privée de classe $_nouvelles.
Les actions Create Read Update Delete (CRUD)
modifierNous avons un contrôleur par objet, l'application va dans un premier temps créer les actions de base : c'est à dire : ajouter (create), lire (read), mettre-à-jour (update), effacer (delete) Cette liste d'action est plus connues sous l'acronyme CRUD (Create, Read, Update, Delete) auxquelles on peut rajouter : lister tous les objets (index) mettre à jour une liste d'objets (updatelist) effacer une liste d'objets (deletelist) Ces actions couvre le spectre des actions possible pour un objet mais l'application se devra aussi de pouvoir ajouter une nouvelle action ou d'invalider une existante. L'ordre d'explication des actions sera croissante en difficulté :
- read : lire un enregistrement et l'afficher
- create : formulaire d'ajout d'enregistrement
- index : liste de tous les enregistrements
- update : formulaire de modification
- delete : effacement d'un objet