0
我似乎錯過了嘗試將服務注入偵聽器時無法識別的步驟。將服務注入偵聽器類
這裏是我的services.xmlL
<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>
...
監聽器類本身:
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
我似乎無法以隔離我做錯了注入服務,因爲我相信我遵循手冊中的正確步驟。
嗯..沒有,儘管你的理論可能是正確的我仍然得到同樣的錯誤後清除緩存並嘗試加載 –