Özel etkinlik oluşturmaya çalışıyorum, ancak çalışmasını sağlayamıyorum.Symfony2 özel olay dağıtıcısı ve dinleyicisi
Ben ne yaptım:
1.I oluşturulan olay tanımlayan sınıf
namespace Path\ToBundle\EventListener;
use Path\ToBundle\Event\FilterResponseEvent;
class ResponseListener
{
public function onCookieInit(FilterResponseEvent $event)
{
//some complex logic goes here
echo('test');
}
}
3.created olay dinleyicisi
namespace Path\ToBundle\Event;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\HttpFoundation\Response;
class FilterResponseEvent extends Event
{
protected $response;
public function __construct(Response $response)
{
$this->response = $response;
}
public function getResponse()
{
return $this->response;
}
}
namespace Path\ToBundle;
final class CookieEvents
{
const COOKIE_EVENT = 'cookie.event';
}
2.Created olay
yılında4.Tried service.yml içindeki
kernel.listener.cookie.event:
class: Path\ToBundle\Event\ResponseListener
tags:
- { name: kernel.event_listener, event: cookie.event, method: onCookieInit }
5.Next etkinlik işleyici kaydetmek için ben denetleyici eylem içine olayını göndermek için denemek
//includes before class
use Symfony\Component\EventDispatcher\EventDispatcher;
use Path\ToBundle\Event\FilterResponseEvent;
//inside controller action
//... $response variable is created
$dispatcher = new EventDispatcher();
$event = new FilterResponseEvent($response);
$dispatcher->dispatch(CookieEvents::COOKIE_EVENT, $event);
return $response;
//EOF controller action
Ne elde etmek çalışıyorum belirli işlemlere daha mümkün yangın olay olmaktır. Ne yazık ki bu işe yaramıyor. Olaylar konsepti benim için yeni ve hala burada yaptığım şeyden emin değilim, ama örneklerden ne anlayabildiğim. Belki birisi doğru yöne gidip beni düzeltip düzeltmeyeceğimi söyleyebilirdi? Aksi takdirde, bazı rehberlik daha da takdir edilmektedir.
$ memuru = $ this-> Farklı bir örnek kullanacağınız gibi ('event_dispatcher') olsun. – qooplmao
Bu, özel olayların nasıl ayarlanacağının mükemmel bir örneğidir – lopsided