Страница 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
а в advanced вот например https://github.com/yiisoft/yii2/blob/ma ... tstrap.php

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',
],