2012-12-17 5 views
0

청취자에게 서비스를 주입하려고 할 때 식별 할 수 없었던 단계가없는 것처럼 보입니다. 나는 이벤트를 트리거 할 때청취자 클래스에 서비스 주입하기

namespace My\AppBundle\Listener; 

use My\AppBundle\Api\ActivityLogger; 

use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; 

class ActivityListener 
{ 
    protected $activityLogger; 

    public function __construct(ActivityLogger $al) 
    { 
     $this->activityLogger = $al; 
    } 

    public function onLoggedIn(InteractiveLoginEvent $event) 
    { 
     // Log activity data 

    } 

내가받은 오류 :

ErrorException: Catchable Fatal Error: Argument 1 passed to 
My\AppBundle\Listener\ActivityListener::__construct() must be an instance of 
My\AppBundle\Api\ActivityLogger, none given, called in 
/var/www/app/cache/dev/appDevDebugProjectContainer.php on line 2739 and defined in 
/var/www/src/My/AppBundle/Listener/ActivityListener.php line 18 

내가없는 것

여기

<services> 
    <!-- Activity logger --> 
    <service id="myapp.activity_logger" class="My\AppBundle\Api\ActivityLogger"> 
    </service> 
    <!-- Activity events --> 
    <service id="myapp.activity.logged_in" class="My\AppBundle\Listener\ActivityListener"> 
     <argument type="service" id="myapp.activity_logger" /> 
     <tag name="kernel.event_listener" event="security.interactive_login" method="onLoggedIn" priority="254" /> 
    </service> 
    ... 

리스너 클래스 자체 내 services.xmlL입니다 제가 매뉴얼에서 올바른 단계를 따르고 있다고 믿기 때문에 서비스를 삽입하기 위해 내가 잘못하고있는 것을 분리하십시오.

답변

0

캐시를 재설정하지 않은 것 같습니다.

  1. 당신은
  2. 캐시
  3. 추가 생성자에게 내뿜어 로거 서비스를 주입하지 않고 생성자 설정에
  4. 설명 된 서비스없이 ActivityListener 클래스를 생성에 로거 서비스를 주입 : 나는 다음과 같은 흐름이었다 가정 구성하지만 캐시를 플러시하는 것을 잊었습니다
+0

흠 .. 아니요, 이론이 맞을지라도 캐시를 지우고로드하려고 시도한 후에도 여전히 같은 오류가 발생합니다. –