В Yii2 для вынесения логина и пароля из User модели в отдельный файл, можно воспользоваться конфигурационными файлами приложения.
Итак, для начала, создадим новый файл конфигурации в папке config
приложения (по умолчанию). Допустим, мы назовем его credentials.php
.
В этом файле мы определим две переменные: $login
и $password
, в которых будут содержаться наши данные авторизации:
<?php $login = 'my_login'; $password = 'my_password'; return [ 'login' => $login, 'password' => $password, ];
После этого, мы должны подключить этот файл в основном файле конфигурации приложения main.php
(также находится в папке config
).
Для этого добавим следующий код в массив components
в файле main.php
:
'components' => [ // ... 'auth' => [ 'class' => 'appcomponentsAuth', 'login' => require(__DIR__ . '/credentials.php')['login'], 'password' => require(__DIR__ . '/credentials.php')['password'], ], // ... ]
В этом примере, мы добавляем новый компонент auth
в основной конфигурации приложения. Указан класс appcomponentsAuth
, который мы создадим в следующем шаге.
Осталось только создать класс Auth
, наследующий yiibaseComponent
, в папке components
(вы должны создать ее, если ее нет):
<?php namespace appcomponents; use yiibaseComponent; class Auth extends Component { public $login; public $password; // ... }
После выполнения этих шагов, вы можете использовать логин и пароль, указанные в отдельном файле, в вашей модели User следующим образом:
namespace appmodels; use Yii; class User extends yiidbActiveRecord { public function login() { $login = Yii::$app->auth->login; $password = Yii::$app->auth->password; // ... } }
Теперь конфиденциальные данные, такие как логин и пароль, находятся в отдельном файле и при необходимости их можно легко изменить без внесения изменений в модель User.