Custom AuthenticationHandler неправильно реализует интерфейс - почему? - PullRequest
1 голос
/ 05 января 2012

Этот вопрос относится к

Как отключить перенаправление после login_check в Symfony 2

Я реализовал решение, приведенное по этой ссылке, но получаю ошибку Iобычно понимаю, но по этому поводу нет.Мой класс полностью реализует интерфейс (я думаю).

Неустранимая ошибка: объявление Foo \ AppBundle \ Handler \ AuthenticationHandler :: onAuthenticationSuccess () должно быть совместимо с таковым в Symfony \ Component \ Security \ Http \ Authentication\ AuthenticationSuccessHandlerInterface :: onAuthenticationSuccess () в /Users/Me/Sites/github/Foo/Symfony/src/Foo/AppBundle/Handler/AuthenticationHandler.php в строке 6

class AuthenticationHandler implements
\Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface,
\Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface
{
    function onAuthenticationSuccess(Request $request, TokenInterface $token) {
        return new Response();
    }

    function onAuthenticationFailure(Request $request, AuthenticationException $exception) {
        return new Response();
    }
}

Советы приветствуются!

1 Ответ

5 голосов
/ 05 января 2012

PHP считает, что Request, TokenInterface из текущего пространства имен, но объявление интерфейсов требует, чтобы они были из Symfony\* пространства имен. Попробуйте добавить операторы using или используйте FQN для этих классов:

use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...