0

Я создал свой собственный аутентификатор, который обрабатывает OAuth 2:Как загрузить компонент внутри класса, который расширяет BaseAuthenticate в CakePHP?

class OauthAuthenticate extends BaseAuthenticate 

Я хотел бы использовать пользовательский компонент (простиралась от Component) в моем OauthAuthenticate классе.

Как я могу загрузить мой компонент там? Традиционные

public $components = array('OauthAuthenticate'); 

не работает - компонент не загружен.

+0

Компоненты могут быть использованы в другом компоненте, например. – Artegon

ответ

0

BaseAuthenticate класс не может загрузить компонент через $components массива, как это обычно бывает в контроллерах, но загрузка компоненты возможно в конструкторе:

private $utilComponent = null; 

    public function __construct(ComponentCollection $collection, array $settings) 
    { 
     $this->utilComponent = $collection->load('Util'); 
    } 
+0

Пусть downvoter объясняет, что не так с этим решением. См. Документацию CakePHP - http://api.cakephp.org/2.7/class-ComponentCollection.html#_load – Artegon