Не находит класс

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Не находит класс

Сообщение Bezlepkin »

Привет!

Папка modules находится в корне приложения. Файл UserModule.php есть, класс UserModule.

Но пишет ошибку:

ReflectionException

Class app\modules\user\UserModule does not exist

В чем может быть дело?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Не находит класс

Сообщение anton44eg »

namespace обьявили?
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Не находит класс

Сообщение 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);
    }
}
 
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Не находит класс

Сообщение Bezlepkin »

Объявляю класс в common/config/main.php 'class' => 'app\modules\user\UserModule',
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не находит класс

Сообщение zelenin »

если advanced ковыряете, то неймспейс должен начинаться с backend/common/frontend. app - для basic
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Не находит класс

Сообщение Bezlepkin »

А если modules в корне? Сразу modules?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не находит класс

Сообщение zelenin »

Bezlepkin писал(а):А если modules в корне? Сразу modules?
да. и добавить alias @modules
именно по алиасам yii автоподгружает классы
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Не находит класс

Сообщение Bezlepkin »

То есть сначала Yii::setAlias('@modules', '/path/to/modules'); ?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не находит класс

Сообщение zelenin »

Bezlepkin писал(а):То есть сначала Yii::setAlias('@modules', '/path/to/modules'); ?
ну сначала или одновременно или после) главное ДО загрузки приложения)

когда приложение попытается загрузить \modules\...., оно будет искать в автолоадере комопзера, а потом в папке под алиасом modules
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Не находит класс

Сообщение Bezlepkin »

Блин, не соображу а в объявлении меймспейса и в конфиге писать @modules или с Yii::getAlias('@modules');
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не находит класс

Сообщение zelenin »

Bezlepkin писал(а):Блин, не соображу а в объявлении меймспейса и в конфиге писать @modules или с Yii::getAlias('@modules');
в бустрапе Yii::setAlias()
а в использовании просто неймспейс \modules\..
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Не находит класс

Сообщение Bezlepkin »

Аааа! Тоесть namespace app/modules/.
И app система берет из алиаса по умолчанию который в yii?! А modules мы сами назначаем.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не находит класс

Сообщение zelenin »

Bezlepkin писал(а):Аааа! Тоесть namespace app/modules/.
И app система берет из алиаса по умолчанию который в yii?! А modules мы сами назначаем.
верно
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Не находит класс

Сообщение zelenin »

а в advanced вот например https://github.com/yiisoft/yii2/blob/ma ... tstrap.php
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Не находит класс

Сообщение Bezlepkin »

Все получилось!
Аватара пользователя
mat.twg
Сообщения: 222
Зарегистрирован: 2012.02.22, 20:44
Откуда: Санкт-Петербург

Re: Не находит класс

Сообщение mat.twg »

Тоже самое... если всё получилось, дай на конфиги посмотреть! Спасибо!

ps: обращайте внимание на регистр... блин, час убил...
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Не находит класс

Сообщение Bezlepkin »

mat.twg писал(а):Тоже самое... если всё получилось, дай на конфиги посмотреть! Спасибо!

ps: обращайте внимание на регистр... блин, час убил...
Так заработало или нет?
Аватара пользователя
mat.twg
Сообщения: 222
Зарегистрирован: 2012.02.22, 20:44
Откуда: Санкт-Петербург

Re: Не находит класс

Сообщение mat.twg »

да, конечно, ошибка в регистре... такое бывает, когда с win на nix перетаскиваешь, не всегда всё учитываешь заранее... модуль должен быть написан с Большой буквы:
'gii' => [
'class' => 'yii\gii\Module',
],
Ответить