2015-04-17 7 views
0

У меня есть бесплатный установленный экземпляр Cakephp 3.0 с несколькими примерами кода, все работает нормально. Теперь я хочу, чтобы создать компонент Auth в ./src/Auth, касающиеся документации hereКомпонент Auth в Cakephp 3.0

Вот мой код:

<?php 
namespace App\Auth; 
use Cake\Auth\BaseAuthenticate; 
class AlephAuthenticate extends BaseAuthenticate 
{ 
    public function authenticate(Request $request, Response $response) 
    { 
     // Do things for OpenID here. 
     // Return an array of user if they could authenticate the user, 
     // return false if not. 
    } 
} 

В AppContoller.php я инициализировать этот компонент:

public function initialize() { 
     $this->loadComponent('Auth'); 
     $this->Auth->config('authenticate', ['Aleph']); 
    } 

Вызов URL-адреса приложения в браузере показывает:

Неустранимая ошибка: декларация App \ Auth \ AlephAuthenticate :: authenticate() должна быть совместима с Cake \ Au th \ BaseAuthenticate :: authenticate (Cake \ Network \ Request $ request, Cake \ Network \ Response $ response) в /var/www/art/src/Auth/AlephAuthenticate.php в строке 7

Любая идея в чем тут ошибка ?

Спасибо!

Christoph

ответ

0

Пожалуйста, прочтите сообщение об ошибке, это очевидно. Если у вас все еще есть проблемы с пониманием этого вопроса just paste the error message into a search engine. Это основная процедура для почти каждого сообщения об ошибке, если вы этого не знаете, и, возможно, всегда решить его. Полагаю, что это также в документации php.

Позвольте мне перефразировать сообщение об ошибке для вас: сигнатуры метода не совпадают. Чтобы избавиться от сообщения об ошибке, сделайте их совпадающими.

+0

Googeling сообщение об ошибке - вот что я сделал какое-то время. Вопрос для меня в том, что здесь точно не соответствует. Аутентификация метода определяется в классе BaseAuthorize.php: абстрактная публичная функция authorize ($ user, Request $ request); – Christoph

+0

Добавьте пространства имен сверху: используйте Cake \ Network \ Request; и ответ. Потому что просто запрос не известен внутри вашего пространства имен. Это сделает его доступным только как «Запрос». http://php.net/manual/en/language.namespaces.php – burzum

+0

Теперь это работает! Спасибо! – Christoph