Créer un service listener qui écoute un évènement

26 01 2017

26 commentaires

Créer un service listener qui écoute un évènement

Symfony possède par défaut tout une série d'évènements (kernel.request, kernel.controller, kernel.view, kernel.response). Ces évènements permettent, à l'aide du gestionnaire d'évènements, d'effectuer des actions particulières. Nous pouvons ainsi inscrire du code métier qui s'éxecutera lors du déclenchement d'un évènement. Ce code on le définira en tant que service, c'est ce que l'on appelle communément un listener. Son rôle est d'écouter un évènement et de réagir en effectuant une action lors du déclenchement de celui-ci. On dit que le service listener écoute un évènement particulier. Ce concept est identique au pattern Observer en PHP. Sachez qu'il est également possible de créer son propre évènement. Mais dans ce tutoriel nous nous concentrerons sur un évènement de Symfony présent par défaut : kernel.request.

Le but de ce tutoriel est de pouvoir rediriger un utilisateur qui clique sur un bouton Mon compte vers la page de connexion afin qu'il ait accès aux informations personnelles de son compte. Vous pouvez voir le résultat final sur MyPanier.fr. Pour cela nous allons créer un service listener qui écoute l'évènement kernel.request.

L'évènement kernel.request est un évènement qui est déclenché très tôt dans l'exécution d'une page, avant même que le choix du contrôleur à exécuter ne soit fait. Son objectif est de permettre à un listener de retourner immédiatement une réponse, sans même passer par l'exécution d'un contrôleur. La classe de l'évènement donné en argument par le gestionnaire d'évènements est GetResponseEvent. Nous utiliserons sa méthode setResponse(Response $response) pour indiquer la redirection à effectuer.

Tout d'abord déclarons le listener dans services.yml

    moncompteListener:
        class: Boutique\BoutiqueBundle\ Listener\MoncompteListener
        arguments: [@service_container,@session]
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }

Ensuite créons le listener dans un dossier Listener. Appelons ce fichier MoncompteListener.php

<?php
namespace Boutique\BoutiqueBundle\Listener;

use Symfony\Component \DependencyInjection

\ContainerInterface;
use Symfony\Component \HttpFoundation\Session\Session;
use Symfony\Component \HttpFoundation\RedirectResponse;
use Symfony\Component \HttpKernel\Event

\GetResponseEvent;

class MoncompteListener
{
    public function __construct(ContainerInterface $container, Session $session)
    {
        $this->session = $session;
        $this->router = $container->get('router');
        $this->securityContext = $container->get('security.context');
    }
    
    public function onKernelRequest(GetResponseEvent $event)
    {
        $route = $event->getRequest()->attributes->get('_route');
        
        if ($route == 'utilisateurs_homepage') {
        
            if (!is_object($this->securityContext-> getToken()->getUser())) {
                $this->session->getFlashBag()->add('notification','Vous devez vous identifier');
                $event->setResponse(new RedirectResponse($this->router-> generate('fos_user_security_login')));
            }
        }
    }
}

Voila à présent quand on clique sur le bouton Mon compte nous sommes invités à nous connecter.


 catégorie: Symfony


Commentaires

JoanneCibly posté le 13/06/2024 à 08:33

Центр здоровья «Название» предлагает всестороннюю медицинскую помощь для лиц, столкнувшихся с продолжительным употреблением спиртного на протяжении более чем двух дней, которые ищут профессиональной поддержки для преодоления этого состояния и улучшения своего здоровья.
http://vyvod-iz-zapoya-clean4.ru


RachelSinna posté le 13/06/2024 à 08:35

Алкоголь оказывает многостороннее воздействие на человеческий организм, особенно в период длительного запоя. Продолжительное употребление алкоголя приводит к серьезным физиологическим изменениям, подрывая основы здоровья и вызывая различные патологические состояния.
https://vyvod-iz-zapoya-clean5.ru


SamuelLealf posté le 13/06/2024 à 09:05

Монблан в Самаре – медицинское учреждение, в котором можно получить профессиональную помощь. Правильное лечение освобождает больного от тяжелой разрушающей жизнь патологии. Мы идем в ногу со временем, совмещая богатый опыт и знания в области практической медицины с новейшими методиками диагностики и лечения алкоголизма.
https://monblan-narcology.ru


Helenopick posté le 13/06/2024 à 09:27

Запой — это состояние, при котором человек не может остановиться пить алкоголь в течение длительного времени.
https://vyvod-iz-zapoya-clean6.ru


Sownnbg posté le 13/06/2024 à 12:18

Greetings! This is my first comment here so I just wanted to give a quick shout out and say I genuinely enjoy reading your articles. Can you suggest any other blogs/websites/forums that cover the same topics? Thanks for your time!
http://sugarl.kr/bbs/board.php?bo_table=free&wr_id=783295 captcha solution
http://elephant-pizza.com/bbs/board.php?bo_table=free&wr_id=234863 link back checker
https://language-translate2.wmcloud.org/index.php/User:MarieBroderick3 check if the site is open for indexing
http://oldwiki.bedlamtheatre.co.uk/index.php/Google_Index_Of_Search_Trick blogger outreach agency
http://xn--hsssnews-e257aa.com/bbs/board.php?bo_table=free&wr_id=106977 captcha solution


<a href="https://prom.ua/c3897374-magazin-rybachok.html">WilliamOpica</a> posté le 13/06/2024 à 16:32

Лучший продавец рыболовных товаров в Украине <a href="https://prom.ua/c3897374-magazin-rybachok.html">https://prom.ua/c3897374-magazin-rybachok.html</a>.
Самые популярные товары:
<a href="https://prom.ua/p2192445972-vobler-trehsostavnoj-lucky.html">antira swim 115</a><br>
<a href="https://prom.ua/p2192441311-vobler-suspender-lucky.html">lucky john anira 49sp</a><br>
<a href="https://prom.ua/p2192447124-vobler-vertikalnyj-lucky.html">lucky john basara vib</a><br>
<a href="https://prom.ua/p2227368220-vobler-lucky-john.html">lucky john pro series vib</a><br>
<a href="https://prom.ua/p2227368208-vobler-lucky-john.html">lucky john soft vib</a>

Кроме того, не забудьте добавить сайт в закладки: <a href=https://prom.ua/c3897374-magazin-rybachok.html>https://prom.ua/c3897374-magazin-rybachok.html</a>


JoanneCibly posté le 17/06/2024 à 09:11

Центр здоровья «Название» предлагает всестороннюю медицинскую помощь для лиц, столкнувшихся с продолжительным употреблением спиртного на протяжении более чем двух дней, которые ищут профессиональной поддержки для преодоления этого состояния и улучшения своего здоровья.
http://vyvod-iz-zapoya-clean7.ru


SamuelLealf posté le 17/06/2024 à 09:12

Монблан в Самаре – медицинское учреждение, в котором можно получить профессиональную помощь. Правильное лечение освобождает больного от тяжелой разрушающей жизнь патологии. Мы идем в ногу со временем, совмещая богатый опыт и знания в области практической медицины с новейшими методиками диагностики и лечения алкоголизма.
https://monblan-narcology.ru


RachelSinna posté le 17/06/2024 à 09:16

Алкоголь оказывает многостороннее воздействие на человеческий организм, особенно в период длительного запоя. Продолжительное употребление алкоголя приводит к серьезным физиологическим изменениям, подрывая основы здоровья и вызывая различные патологические состояния.
https://vyvod-iz-zapoya-clean3.ru


Carrietox posté le 17/06/2024 à 11:12

Перед началом лечения необходимо провести тщательную оценку состояния пациента. Важно определить степень алкогольной зависимости, наличие сопутствующих заболеваний и общее физическое состояние. Это позволяет разработать индивидуальный план лечения.
http://xn----7sbepb0agvevex3c.xn--p1ai


MariahFub posté le 17/06/2024 à 12:35

Алкоголизм и наркомания – тяжелые, но излечимые заболевания. После полного курса лечения в наркологической клинике «Санати» пациенты гарантированно достигают стойкой ремиссии. Помощь при алкогольной, наркотической, поведенческой аддикции анонимна и доступна круглосуточно.
https://sanati-clinic.ru


http://narco-vivod-clean.ru posté le 17/06/2024 à 13:39

Запой развивается на фоне хронической алкогольной зависимости, когда организм привыкает к постоянному присутствию этанола. В отсутствии алкоголя у таких пациентов возникают абстинентные симптомы, включая тревогу, тремор, потливость и тахикардию. Для предотвращения этих неприятных симптомов человек продолжает употреблять алкоголь, что приводит к затяжному запою.
http://narco-vivod-clean.ru


HeatherNum posté le 17/06/2024 à 13:39

Первым и самым важным шагом при выводе из запоя является обращение за медицинской помощью. Специалисты помогут оценить состояние пациента и предложить наилучший способ лечения. Важно помнить, что самостоятельный выход из запоя может быть опасен для здоровья и жизни человека.
http://alko-lechebnica.ru


Wandadruff posté le 17/06/2024 à 13:41

Запойное состояние является тяжёлым проявлением хронического алкоголизма, характеризующимся длительным и неконтролируемым потреблением спиртных напитков. Оно сопровождается выраженными физическими и психическими симптомами, что требует специализированного медицинского вмешательства
http://xn----7sbjuigkblbdbkg0myb4b.xn--p1ai


<a href="https://hackerforum.pro/topic/282/">WilliamOpica</a> posté le 17/06/2024 à 16:41

Ищите профессионального хакера? Тогда рекомендуем -
<a href="https://hackerforum.pro/topic/282/">Услуги взлома</a>


Рекомендуем обратить внимание на самые популярные услуги:
<a href=https://hackerforum.pro/topic/282/page-7>Услуги хакера</a>

Еще советуем
<a href=https=https://hackerforum.pro/topic/282/page-6>Запись звонков</a>

Почта специалиста.
XRoom@protonmail.com


<a href="https://hackerforum.pro/topic/282/">WilliamOpica</a> posté le 18/06/2024 à 18:13

Ищите профессионального хакера? Тогда рекомендуем -
<a href="https://hackerforum.pro/topic/282/">Нанять хакера</a>


Рекомендуем обратить внимание на самые популярные услуги:
<a href=https://hackerforum.pro/topic/282/page-11>Удаление плохих отзывов</a>

Еще советуем

<a href=https=https://hackerforum.pro/topic/282/page-6>Нанять хакера</a>

Почта специалиста.
XRoom@protonmail.com


SamuelLealf posté le 19/06/2024 à 11:47

Монблан в Самаре – медицинское учреждение, в котором можно получить профессиональную помощь. Правильное лечение освобождает больного от тяжелой разрушающей жизнь патологии. Мы идем в ногу со временем, совмещая богатый опыт и знания в области практической медицины с новейшими методиками диагностики и лечения алкоголизма.
https://monblan-narcology.ru


DeborahSaide posté le 19/06/2024 à 11:51

Каждый пациент получает помощь по программе, которую врач составил с учетом степени тяжести, стажа аддикции, возраста, самочувствия на момент обращения и даже личных пожеланий зависимого.
https://zapoy-novosibirsk.ru


XavierDex posté le 19/06/2024 à 14:36

Первоначальный этап в лечении алкогольной зависимости — детоксикация. Этот процесс направлен на безопасное избавление организма от алкогольных токсинов.
http://quick-vyvod-iz-zapoya-1.ru


<a href="https://hackerforum.pro/">WilliamOpica</a> posté le 19/06/2024 à 21:26

Ищите профессионального хакера? Тогда рекомендуем -
<a href="https://hackerforum.pro/topic/394/">Хакеры</a>

Почта специалиста.
AnoniBaz@Yandex.ru


<a href="https://hackerforum.pro/topic/110/">WilliamOpica</a> posté le 19/06/2024 à 22:21

Ищите профессионального хакера? Тогда рекомендуем -

<a href="https://hackerforum.pro/topic/110/page-2">Заказать взлом</a>

Рекомендуем обратить внимание на самые популярные услуги:

<a href=https=https://hackerforum.pro/topic/110/page-3>Взлом вотсап</a>

Еще советуем
<a href=https=https://hackerforum.pro/topic/110/page-4>Установить программу шпион на телефон</a>

Почта специалиста.
XakerService@yandex.com


casino jackpot http://jocruise.com Everything published was actually very logical. But, what about posté le 21/06/2024 à 12:33

casino jackpot http://jocruise.com

Everything published was actually very logical. But,
what about this? suppose you added a little content? I ain't
saying your information isn't good., but
what if you added something to possibly grab a person's
attention? I mean Créer un service listener qui écoute un évènement - Web-City.fr |
Blog Symfony3 is a little plain. You might look at Yahoo's
home page and see how they write post headlines to get people interested.

You might add a related video or a related picture
or two to get people excited about everything've written. Just my opinion, it would
make your posts a little bit more interesting.


Phyllisfrife posté le 21/06/2024 à 13:26

Запойное состояние возникает вследствие хронического алкоголизма и характеризуется многодневным употреблением алкоголя, приводящим к выраженной интоксикации организма. Во время запоя у пациента наблюдается резкое снижение критичности к своему состоянию, нарушение сна, аппетита, изменение психоэмоционального фона.
http://xn----7sbzghhjoftt2h.xn--p1ai


Jessicanip posté le 21/06/2024 à 15:25

Запойное состояние, характеризующееся длительным и неконтролируемым потреблением алкоголя, является одной из наиболее сложных форм алкогольной зависимости. Оно требует специализированного и системного подхода для эффективного выведения пациента из данного состояния и предотвращения рецидива.
http://xn---24-5cd0aaaxojc0ai3k.xn--p1ai


Eleanorindup posté le 21/06/2024 à 15:43

Клинические проявления запоя разнообразны и зависят от стадии и тяжести состояния. На начальных этапах наблюдаются симптомы, такие как головные боли, тремор, повышенное потоотделение и тахикардия.
http://xn----7sbbdtawliczg5ij.xn--p1ai


LauraFar posté le 21/06/2024 à 15:44

Запойное пьянство представляет собой одну из наиболее сложных форм алкоголизма, при которой человек употребляет алкоголь в больших количествах в течение продолжительного времени. Этот феномен оказывает значительное негативное влияние на физическое и психическое состояние пациента, что требует профессионального вмешательства для успешного вывода из запоя.
http://xn----7sbb6ahbedrhc1bom2cxf9b.xn--p1ai



Laisser un commentaire