L'écouteur d'événement Symfony2 et l'accès au noyau, à la demande et à la réponse?
J'ai vraiment du mal à comprendre cela et maintenant, je vais juste à tourner en rond.
J'ai lu que beaucoup de ce manuel que possible, payé pour une vidéo tutoriel, parcouru Google et YouTube et juste ne pouvez pas obtenir ce travail.
Je suis simplement en train d'essayer de configurer un port d'écoute active avant chaque demande. Je peux le faire, mais mon problème est d'obtenir l'accès à diverses autres pièces dont j'ai besoin.
Ci-dessous est un exemple, mais je pense que le code réel va m'aider à comprendre cela maintenant.
Je vous serais reconnaissant si quelqu'un pouvait remplir les blancs. C'est juste un exemple, mais chaque partie m'expliquer ce que c'est j'ai besoin de savoir.
Dans la configuration.yml:
services:
kernel.listener.request_listener:
class: Acme\Bundle\NewBundle\EventListener\RequestListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
arguments: [ '@service_container' ]
La classe:
namespace Acme\Bundle\NewBundle\EventListener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
***do I need to 'use' any others here?***
class RequestListener
{
public function onKernelRequest($container) {
//reference to these: http://api.symfony.com/2.1/Symfony/Component/HttpKernel/Event/KernelEvent.html
$kernel =
//reference to the Request object
$request = $kernel->getRequest();
//reference to the Response object
$response =
//options:
// (1) continue to run usual content
// (2) stop execution and output a message
// (3) set cookie and continue to run usual content
switch( $request->query->get('option') ) {
case 1:
return
case 2:
$this->setResponse("hello, message here");
break;
case 3:
//*** not sure if this is the way to do it ***
$response->headers->setCookie(new Cookie("test", 1));
break;
}
}
}
source d'informationauteur user2143356 | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
Il y a quelques erreurs dans votre
services.yml
Afin de rendre votre code de travail, cela devrait ressembler à
services.yml
My\AwesomeBundle\Listener\MyListener.php
Il semble que vous n'avez pas vraiment compris comment symfony2 dic œuvres.
Votre
kernel.request
auditeur peut ne traiter que les cas 1 et 2. Pour le cas 3, vous devez utiliserkernel.response
événement.La classe: