Cas concret - Sécurisation de l’accès aux pages
Une notion importante à prendre en compte avec les événements : il est possible d’arrêter un processus. Le cas de la sécurisation à l’accès des pages permet de voir les événements différemment. Dans ce cas, ils ne servent pas à analyser les requêtes utilisateurs, mais à protéger l’accès au site.
Exemple complet
app/config/services.php
use Phalcon\Events\Manager as EventsManager;
use HelloWorld\Plugins\SecurityPlugin;
...
$di->setShared('dispatcher', function () {
$oDispatcher = new Phalcon\Mvc\Dispatcher();
$oGestionEvenements = new EventsManager();
$oGestionEvenements->attach(
'dispatch',
new SecurityPlugin()
);
$oDispatcher->setEventsManager($oGestionEvenements);
return $oDispatcher;
});
app/plugins/SecurityPlugin.php
class SecurityPlugin extends Plugin
{
public function beforeExecuteRoute(Event $oEvent, Dispatcher
$oDispatcher)
{
$oUtilisateur = null;
if (true === $this->session->has('utilisateur')) {
...