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 12:42] – [Evènements dans les contrôleurs] jcheron | slam4:php:phalcon:controllers [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
---|
| |
| |
Un contrôleur Phalcon est une classe héritant de \Phalcon\Mvc\Controller, et dont les méthodes publiques sont qualifiées d'actions, accessibles par l'url. Les actions sont responsables de l'interprétation des requêtes et de la création de la réponse. | Un contrôleur Phalcon est une classe héritant de [[https://api.phalconphp.com/class/Phalcon/Mvc/Controller.html|\Phalcon\Mvc\Controller]], et dont les méthodes publiques sont qualifiées d'actions, accessibles par l'url. Les actions sont responsables de l'interprétation des requêtes et de la création de la réponse. |
===== -- URLs ===== | ===== -- URLs ===== |
| |
</sxh> | </sxh> |
**URL d'accès à l'action :** | **URL d'accès à l'action :** |
* /posts/show/2015/JeSuisCharlie | * /posts/show/2015/elections |
| |
Les paramètres de l'action peuvent être facultatifs s'ils ont une valeur par défaut : | Les paramètres de l'action peuvent être facultatifs s'ils ont une valeur par défaut : |
| |
**URLs d'accès à l'action :** | **URLs d'accès à l'action :** |
* /posts/show/2015/JeSuisCharlie | * /posts/show/2015/elections |
* /posts/show/2015/ | * /posts/show/2015/ |
* /posts/show/ | * /posts/show/ |
| |
| |
Les contrôleurs ont accès par défaut à l'injecteur de services **$di** défini dans le fichier bootstrap (index.php) : | Les contrôleurs ont accès par défaut à l'injecteur de services **$di** défini dans le fichier bootstrap (index.php ou services.php) : |
| |
<sxh php;title:index.php> | <sxh php;title:index.php> |
| |
</sxh> | </sxh> |
| |
| Il est également possible d'utiliser $this->session pour assurer la persistance.\\ |
| Les données ajoutés à la session ($this->session) sont disponibles à travers toute l’application, tandis qu’avec $this->persistant, on ne peux y accéder qu’à partir de la portée de la classe courante. |
| |
| |
===== -- Base controller ===== | ===== -- Base controller ===== |
| |
Moeteur 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 commun, et d'en faire hériter les autres contrôleurs. | 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;title:app/controllers/ControllerBase.php> | <sxh php;title:app/controllers/ControllerBase.php> |
===== -- Evènements dans les contrôleurs ===== | ===== -- Evènements dans les contrôleurs ===== |
| |
Les contrôleurs disposent d'écouteurs sur les évènements du [[http://docs.phalconphp.com/en/latest/reference/dispatching.html|dispatcher]]. Implémenter les méthodes suivantes permet d'agir avant et après que l'action soit exécutée. | Les contrôleurs disposent d'écouteurs sur les évènements du [[http://docs.phalconphp.com/en/latest/reference/dispatching.html|dispatcher]].\\ Implémenter les méthodes suivantes permet d'agir avant et après que l'action soit exécutée. |
| |
<sxh php;title:app/controllers/PostsController.php> | <sxh php;title:app/controllers/PostsController.php> |
} | } |
</sxh> | </sxh> |
| |
| Le retour (false/true) permet éventuellement d'annuler l'action. |