В basic версии Yii2 есть простейшая авторизация с готовыми демо-данными в static массиве $users класса User. Я написал функцию, формирующую массив в таком же формате, но уже с данными из БД. Но при попытке присвоить массиву $users результат функции public static $users = self::getAll(); выдает ошибку syntax error, unexpected '(', expecting ',' or ';'. Интернет говорит, что статическим переменным нельзя присваивать нестатические результаты, но функция объявлена как static и все равно та же ошибка.
Пробовал также скопировать класс User из advanced/common/user.php, но там уже жалуется на недостающий класс. И я даже не знаю, будет ли проще использовать advanced (он пока сложноват для меня) или можно все-таки перенести авторизацию оттуда в basic.
basic затем, что выглядит проще для мелкого сайта.
Массив $users это изначально авторизация admin:admin и demo:demo.
В LoginForm используется
public function getUser()
{
if ($this->_user === false) {
$this->_user = User::findByUsername($this->username);
}
return $this->_user;
}
а в
public static function findByUsername($username)
{
foreach (self::$users as $user) {
if (strcasecmp($user['username'], $username) === 0) {
return new static($user);
}
}
return null;
}
перебирается массив $users. Хотел просто минимально поменять код, чтобы потом нестыковки не вылезли.