Я создал следующий пользовательский класс, который я хотел бы использовать в своем приложении Yii2:
@общий/компоненты/помощник/CustomDateTime.php
namespace common\components\helper;
class CustomDateTime{function Now() {...}}
Я хочу использовать этот класс следующим образом:
public function actionDelete($id)
{
$account = $this->findModel($id);
$account->archived = 1;
$account->archived_date = CustomDateTime::Now();
$account->save();
return $this->redirect(['index']);
}
В моем файле @common/config/bootstrap.php я создал classMap в соответствии с этим http://www.yiiframework.com/doc-2.0/guide-concept-autoloading.html.
Yii::$classMap['CustomDateTime'] = '@common/components/helper/CustomDateTime.php';
Но я получаю ошибку: Class 'app\controllers\myapp\CustomDateTime' не найден
ВОПРОС: Как создать classMap, чтобы мне не пришлось использовать оператор use в начале каждого контроллера для доступа к моему пользовательскому классу?
Yii 1.1 использовал параметр в файле конфигурации для "импорта" набора кода, чтобы файл класса мог автоматически загружаться при его вызове.
Решение
Большое спасибо @Animir за перенаправление меня обратно в исходную документацию. http://www.yiiframework.com/doc-2.0/guide-concept-autoloading.html.
Я обнаружил, что могу использовать следующее в моем файле @common/config/bootstrap.php
Yii::$classMap['CustomDateTime'] = '@common/components/helper/CustomDateTime.php';
НО - он работает только тогда, когда файл CustomDateTime.php НЕ имеет объявленного пространства имен.
//namespace common\components\helper;
class CustomDateTime{function Now() {...}}