Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| slam4:php:phalcon:controllers [2015/01/09 09:45] – [4- Injection de services] jcheron | slam4:php:phalcon:controllers [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| - | Un contrôleur Phalcon est une classe héritant de \Phalcon\Mvc\Controller, | + | Un contrôleur Phalcon est une classe héritant de [[https:// |
| ===== -- URLs ===== | ===== -- URLs ===== | ||
| Ligne 35: | Ligne 34: | ||
| </ | </ | ||
| **URL d' | **URL d' | ||
| - | * / | + | * / |
| Les paramètres de l' | Les paramètres de l' | ||
| Ligne 56: | Ligne 55: | ||
| **URLs d' | **URLs d' | ||
| - | * / | + | * / |
| * / | * / | ||
| * / | * / | ||
| Ligne 136: | Ligne 135: | ||
| - | Les contrôleurs ont accès par défaut à l' | + | Les contrôleurs ont accès par défaut à l' |
| <sxh php; | <sxh php; | ||
| Ligne 150: | Ligne 149: | ||
| </ | </ | ||
| + | |||
| + | Accès au service injecté dans un contrôleur : | ||
| + | |||
| + | <sxh php> | ||
| + | <?php | ||
| + | class FilesController extends \Phalcon\Mvc\Controller{ | ||
| + | |||
| + | public function saveAction(){ | ||
| + | |||
| + | //Injecting the service by just accessing the property with the same name | ||
| + | $this-> | ||
| + | |||
| + | //Accessing the service from the DI | ||
| + | $this-> | ||
| + | |||
| + | //Another way to access the service using the magic getter | ||
| + | $this-> | ||
| + | |||
| + | //Another way to access the service using the magic getter | ||
| + | $this-> | ||
| + | |||
| + | //Using the array-syntax | ||
| + | $this-> | ||
| + | } | ||
| + | |||
| + | } | ||
| + | </ | ||
| ===== -- Request et response ===== | ===== -- Request et response ===== | ||
| - | ===== -- Données | + | Les classes [[http:// |
| + | |||
| + | Exemples d' | ||
| + | |||
| + | <sxh php> | ||
| + | class PostsController extends Phalcon\Mvc\Controller | ||
| + | { | ||
| + | |||
| + | public function indexAction() | ||
| + | { | ||
| + | |||
| + | } | ||
| + | |||
| + | public function saveAction() | ||
| + | { | ||
| + | // Vérifie si la requête a été postée | ||
| + | if ($this-> | ||
| + | // Accède aux données du POST | ||
| + | $customerName | ||
| + | $customerBorn | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public function notFoundAction() | ||
| + | { | ||
| + | // Envoie le code d' | ||
| + | $this-> | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | ===== -- Persistance des données ===== | ||
| + | |||
| + | Les sessions permettent de gérer la persistance des données entre les requêtes : il est possible d' | ||
| + | |||
| + | <sxh php> | ||
| + | <?php | ||
| + | |||
| + | class UserController extends Phalcon\Mvc\Controller{ | ||
| + | |||
| + | public function indexAction() | ||
| + | { | ||
| + | $this-> | ||
| + | } | ||
| + | |||
| + | public function welcomeAction() | ||
| + | { | ||
| + | echo " | ||
| + | } | ||
| + | |||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Il est également possible d' | ||
| + | Les données ajoutés à la session ($this-> | ||
| ===== -- Base controller ===== | ===== -- Base controller ===== | ||
| + | Moteur de template, gestion du cache, ACL, translation sont souvent communs à plusieurs contrôleurs. Il est intéressant dans ce cas de factoriser le code en créant un contrôleur de base, gérant ces services communs, et d'en faire hériter les autres contrôleurs. | ||
| + | <sxh php; | ||
| + | <?php | ||
| + | |||
| + | class ControllerBase extends \Phalcon\Mvc\Controller{ | ||
| + | |||
| + | /** | ||
| + | * Action disponible pour tous les contrôleurs héritant de ControllerBase | ||
| + | */ | ||
| + | public function someAction(){ | ||
| + | |||
| + | } | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | Tout contrôleur héritant de ControllerBase aura maintenant accès aux fonctionnalités de ControllerBase. | ||
| + | |||
| + | <sxh php; | ||
| + | <?php | ||
| + | |||
| + | class UsersController extends ControllerBase{ | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== -- Evènements dans les contrôleurs ===== | ||
| + | |||
| + | Les contrôleurs disposent d' | ||
| + | |||
| + | <sxh php; | ||
| + | <?php | ||
| + | |||
| + | class PostsController extends \Phalcon\Mvc\Controller{ | ||
| + | |||
| + | public function beforeExecuteRoute($dispatcher){ | ||
| + | // This is executed before every found action | ||
| + | if ($dispatcher-> | ||
| + | |||
| + | $this-> | ||
| + | |||
| + | $this-> | ||
| + | ' | ||
| + | ' | ||
| + | )); | ||
| + | |||
| + | return false; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public function afterExecuteRoute($dispatcher){ | ||
| + | // Executed after every found action | ||
| + | } | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | Le retour (false/ | ||