我試圖覆蓋LastLoginListener以向其添加功能。Fosuserbundle覆蓋事件監聽器
我;想要做它描述here 看來
在的appbundle \ DependencyInjection \ OverrideServiceCompilerPass.php
<?php
namespace AppBundle\DependencyInjection\Compiler;
use AppBundle\EventListener\LastLoginListener;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class OverrideServiceCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$definition = $container->getDefinition('"fos_user.security.interactive_login_listener');
$definition->setClass(LastLoginListener::class);
}
services.yml
services:
app.login_listener:
class: AppBundle\EventListener\LastLoginListener
arguments: []
tags:
- { name: kernel.event_subscriber }
監聽器本身從包中複製。
自動加載預期類 「的appbundle \ DependencyInjection \ OverrideServiceCompilerPass」 到文件 「/vendor/composer/../../src/AppBundle/DependencyInjection/OverrideServiceCompilerPass.php」 來定義。該文件已找到,但該類不在其中,類名或命名空間可能有拼寫錯誤。 在DebugClassLoader.php(線路261)
我的目標是增加與聽衆的最後登錄的IP地址,但我需要創建另一個添加一個角色和註冊日期 我想做它「正確的方式」,而不是做一些事情hackish
我與工作事件偵聽器現在這樣做,似乎是一個編譯器通過覆蓋不需要的服務,我可以用它來擴展默認功能的默認偵聽器。 –
對不起,我不能編輯我的評論,張貼作爲解決方案,我會接受。 –