yii\web\IdentityInterface при использовании репозитория и доменной модели
yii\web\IdentityInterface при использовании репозитория и доменной модели
Как реализовать yii\web\IdentityInterface правильно, ведь этот интерфейс требует,что бы класс был сразу и репозиторием и моделью?
Re: yii\web\IdentityInterface при использовании репозитория и доменной модели
Код: Выделить всё
<?php
namespace common;
use yii\web\IdentityInterface;
final class UserAdapter implements IdentityInterface
{
private $user;
public function __construct(User $user)
{
$this->user = $user;
}
public static function findIdentity($id)
{
return new UserAdapter(UserRepositoryFactory::create()->findById($id));
}
public function getId()
{
return $this->user->getId();
}
}
Может есть подводные камни - потестируйте.
Re: yii\web\IdentityInterface при использовании репозитория и доменной модели
DI здесь,как я понял, никак не задействовать, т.к. методы статические.zelenin писал(а):вместо фабрики июзаете что-то для инициализации репозитория - не знаю, что у вас используется.Код: Выделить всё
<?php namespace common; use yii\web\IdentityInterface; final class UserAdapter implements IdentityInterface { private $user; public function __construct(User $user) { $this->user = $user; } public static function findIdentity($id) { return new UserAdapter(UserRepositoryFactory::create()->findById($id)); } public function getId() { return $this->user->getId(); } }
Может есть подводные камни - потестируйте.
Да и UserAdapter::findIdentity() должен null возвращать, если пользователь не найден.
Re: yii\web\IdentityInterface при использовании репозитория и доменной модели
внутри статических методов пользуйтесь фабриками, в которых все нужное инжектится через di.Melodic писал(а):DI здесь,как я понял, никак не задействовать, т.к. методы статические.