Bonjour,
Voila je rencontre un petit problème avec mon code.
Ce que je fais
Comme dans l'excellent tuto Symfony2 de Benjamin, je souhaite faire un listener afin de verifier si l'utilisateur est identifié au moment où il valide un panier et l'inviter a le faire si ce n'est pas le cas. Par contre, je travail moi sur Symfony3.
services.yml :
class: Activitalia\ActivitaliaBundle\EventListener\RedirectionListener
arguments: [@service_container,@session]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
RedirectionListener.php
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpFoundation\Session\Session;
class RedirectionListener
{
public function __construct(ContainerInterface $container, Sesssion $session) {
die(var_dump($session));
$this->session = $session;
$this->router = $container->get('router');
$this->securityContext = $container->get('security.context');
}
public function onKernelRequest(GetResponseEvent $event) {
etc.
Ce que je veux
Dans les services, je tente de passer les paramètres service_container et session à ma fonction RedirectionListener
Dans ma methode, je souhaite les recuperer dans un constructeur puis les traiter.
Ce que j'obtiens
Une belle erreur pour m'expliquer que mon code YAML n'est pas bon :
FileLoaderLoadException
The file "Bundle/Resources/config/services.yml" does not contain valid YAML in Bundle/Resources/config/services.yml (which is being imported from "app/config\config.yml").
Si je passe mes arguments comme cela : " arguments: [service_container,session] ", j'obtiens une erreurs sur le constructeur (les variables passées ne sont pas bonnes) :
ContextErrorException
Catchable Fatal Error: Argument 1 passed to Bundle\EventListener\RedirectionListener::__construct() must implement interface Symfony\Component\DependencyInjection\ContainerInterface, string given, called in \var\cache\dev\appDevDebugProjectContainer.php on line 471 and defined
Pouvez-vous m'aiguiller ?