Страница 1 из 1
Не находит класс
Добавлено: 2015.01.12, 01:43
Bezlepkin
Привет!
Папка modules находится в корне приложения. Файл UserModule.php есть, класс UserModule.
Но пишет ошибку:
ReflectionException
Class app\modules\user\UserModule does not exist
В чем может быть дело?
Re: Не находит класс
Добавлено: 2015.01.12, 01:54
anton44eg
namespace обьявили?
Re: Не находит класс
Добавлено: 2015.01.12, 01:57
Bezlepkin
Код: Выделить всё
<?php
namespace app\modules\user;
use Yii;
class UserModule extends \yii\base\Module
{
public $controllerNamespace = 'app\modules\user\controllers';
public function init()
{
parent::init();
$this->registerTranslations();
}
public function registerTranslations()
{
Yii::$app->i18n->translations['modules/user/*'] = [
'class' => 'yii\i18n\PhpMessageSource',
'sourceLanguage' => 'en-US',
'basePath' => '@app/modules/user/messages',
'fileMap' => [
'modules/user/main' => 'main.php',
],
];
}
public static function t($category, $message, $params = [], $language = null)
{
return Yii::t('modules/user/' . $category, $message, $params, $language);
}
}
Re: Не находит класс
Добавлено: 2015.01.12, 02:04
Bezlepkin
Объявляю класс в common/config/main.php 'class' => 'app\modules\user\UserModule',
Re: Не находит класс
Добавлено: 2015.01.12, 02:05
zelenin
если advanced ковыряете, то неймспейс должен начинаться с backend/common/frontend. app - для basic
Re: Не находит класс
Добавлено: 2015.01.12, 02:20
Bezlepkin
А если modules в корне? Сразу modules?
Re: Не находит класс
Добавлено: 2015.01.12, 02:22
zelenin
Bezlepkin писал(а):А если modules в корне? Сразу modules?
да. и добавить alias @modules
именно по алиасам yii автоподгружает классы
Re: Не находит класс
Добавлено: 2015.01.12, 09:09
Bezlepkin
То есть сначала Yii::setAlias('@modules', '/path/to/modules'); ?
Re: Не находит класс
Добавлено: 2015.01.12, 11:19
zelenin
Bezlepkin писал(а):То есть сначала Yii::setAlias('@modules', '/path/to/modules'); ?
ну сначала или одновременно или после) главное ДО загрузки приложения)
когда приложение попытается загрузить \modules\...., оно будет искать в автолоадере комопзера, а потом в папке под алиасом modules
Re: Не находит класс
Добавлено: 2015.01.12, 11:42
Bezlepkin
Блин, не соображу а в объявлении меймспейса и в конфиге писать @modules или с Yii::getAlias('@modules');
Re: Не находит класс
Добавлено: 2015.01.12, 11:44
zelenin
Bezlepkin писал(а):Блин, не соображу а в объявлении меймспейса и в конфиге писать @modules или с Yii::getAlias('@modules');
в бустрапе Yii::setAlias()
а в использовании просто неймспейс \modules\..
Re: Не находит класс
Добавлено: 2015.01.12, 17:33
Bezlepkin
Аааа! Тоесть namespace app/modules/.
И app система берет из алиаса по умолчанию который в yii?! А modules мы сами назначаем.
Re: Не находит класс
Добавлено: 2015.01.12, 18:23
zelenin
Bezlepkin писал(а):Аааа! Тоесть namespace app/modules/.
И app система берет из алиаса по умолчанию который в yii?! А modules мы сами назначаем.
верно
Re: Не находит класс
Добавлено: 2015.01.12, 18:24
zelenin
Re: Не находит класс
Добавлено: 2015.01.13, 20:34
Bezlepkin
Все получилось!
Re: Не находит класс
Добавлено: 2015.01.26, 06:24
mat.twg
Тоже самое... если всё получилось, дай на конфиги посмотреть! Спасибо!
ps: обращайте внимание на регистр... блин, час убил...
Re: Не находит класс
Добавлено: 2015.01.26, 08:33
Bezlepkin
mat.twg писал(а):Тоже самое... если всё получилось, дай на конфиги посмотреть! Спасибо!
ps: обращайте внимание на регистр... блин, час убил...
Так заработало или нет?
Re: Не находит класс
Добавлено: 2015.01.26, 21:53
mat.twg
да, конечно, ошибка в регистре... такое бывает, когда с win на nix перетаскиваешь, не всегда всё учитываешь заранее... модуль должен быть написан с Большой буквы:
'gii' => [
'class' => 'yii\gii\Module',
],