Unknown Class. Namespace missing?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
neokortex
Сообщения: 2
Зарегистрирован: 2016.05.05, 01:00

Unknown Class. Namespace missing?

Сообщение neokortex » 2016.05.05, 09:46

Подключаю свой класс.

Возникает ошибка

Unable to find 'app\components\Helper' in file: /home/project/yii/basic/components/Helper.php. Namespace missing?


Как делаю:

1. в config/web.php в components добавил

Код: Выделить всё

'helper' => [
            'class' => 'app\components\Helper',
        ], 
2. в контроллер добавил строчку use app\components\Helper;

3. создал файл components/Helper.php с таким содержанием

Код: Выделить всё

namespace app\components;

use Yii;
use yii\base\Component;
use yii\base\InvalidConfigException;

class Helper extends Component {
...
}
4. в экшене вызываю вот так
Yii::$app->helper; // именно тут и возникает ошибка

В чем проблема? Подскажите новичку, пожалуйста.

Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Unknown Class. Namespace missing?

Сообщение Onotole » 2016.05.05, 10:31

По тому, что helper и Helper - это 2 разных слова

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Unknown Class. Namespace missing?

Сообщение zelenin » 2016.05.05, 10:49

Onotole писал(а):По тому, что helper и Helper - это 2 разных слова
не вижу указанной тобой ошибки. helper - id компонента, Helper - имя класса.

lgXenos
Сообщения: 241
Зарегистрирован: 2015.11.30, 15:42

Re: Unknown Class. Namespace missing?

Сообщение lgXenos » 2016.05.05, 15:32

neokortex писал(а):...
Кусок Yii, который это делает выглядит как

Код: Выделить всё

        include($classFile);

        if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false)) {
            throw new UnknownClassException("Unable to find '$className' in file: $classFile. Namespace missing?");
        }
 
Т.е. он пытается подключить файл и потом найти в переменных у себя класс или трет или интерфейс

Варианта, думаю, всего 2:

1. у тебя нет такого файла как /home/project/yii/basic/components/Helper.php
Попробуй в консоли написать

Код: Выделить всё

cat /home/project/yii/basic/components/Helper.php
И посмотреть выведет что или даст ошибку

2. Посмотреть что непосредственно в этом файле )

Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Unknown Class. Namespace missing?

Сообщение Onotole » 2016.05.05, 15:33

zelenin писал(а):
Onotole писал(а):По тому, что helper и Helper - это 2 разных слова
не вижу указанной тобой ошибки. helper - id компонента, Helper - имя класса.
С телефона смотрел, показалось, что имя класса в нижнем

Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Unknown Class. Namespace missing?

Сообщение Onotole » 2016.05.05, 15:34

lgXenos писал(а):
neokortex писал(а):...
Кусок Yii, который это делает выглядит как

Код: Выделить всё

        include($classFile);

        if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false)) {
            throw new UnknownClassException("Unable to find '$className' in file: $classFile. Namespace missing?");
        }
Т.е. он пытается подключить файл и потом найти в переменных у себя класс или трет или интерфейс

Варианта, думаю, всего 2:

1. у тебя нет такого файла как /home/project/yii/basic/components/Helper.php
Попробуй в консоли написать

Код: Выделить всё

cat /home/project/yii/basic/components/Helper.php
И посмотреть выведет что или даст ошибку

2. Посмотреть что непосредственно в этом файле )
Файл есть, иначе yii ругался бы на другое. У него с неймспейсами проблема.
Возможно у него advanced шаблон

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Unknown Class. Namespace missing?

Сообщение zelenin » 2016.05.05, 15:35

lgXenos писал(а):
neokortex писал(а):...
Кусок Yii, который это делает выглядит как

Код: Выделить всё

        include($classFile);

        if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false)) {
            throw new UnknownClassException("Unable to find '$className' in file: $classFile. Namespace missing?");
        }
 
Т.е. он пытается подключить файл и потом найти в переменных у себя класс или трет или интерфейс

Варианта, думаю, всего 2:

1. у тебя нет такого файла как /home/project/yii/basic/components/Helper.php
Попробуй в консоли написать

Код: Выделить всё

cat /home/project/yii/basic/components/Helper.php
И посмотреть выведет что или даст ошибку

2. Посмотреть что непосредственно в этом файле )
если бы не было файла, то ругнулся бы на стадии инклуда. такая ошибка возникает, когда файл подключен, а внутри не тот класс, который вызван (неймспейс не совпадает/отсутствует или имя класса).

lgXenos
Сообщения: 241
Зарегистрирован: 2015.11.30, 15:42

Re: Unknown Class. Namespace missing?

Сообщение lgXenos » 2016.05.05, 15:40

zelenin писал(а):если бы не было файла, то ругнулся бы на стадии инклуда.
В принципе да
zelenin писал(а): такая ошибка возникает, когда файл подключен, а внутри не тот класс, который вызван (неймспейс не совпадает/отсутствует или имя класса).
Поэтому см п.2
А чего сразу так не ответил человеку?

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Unknown Class. Namespace missing?

Сообщение zelenin » 2016.05.05, 15:45

lgXenos писал(а):А чего сразу так не ответил человеку?
а) на форуме этот вопрос озвучивался неоднократно
б) я не написал ничего, чего нет в тексте самой ошибки

lgXenos
Сообщения: 241
Зарегистрирован: 2015.11.30, 15:42

Re: Unknown Class. Namespace missing?

Сообщение lgXenos » 2016.05.05, 16:04

zelenin писал(а):а) на форуме этот вопрос озвучивался неоднократно
Иногда я удивляюсь, что у программистов этого форума еще не появилось FAQ, Wiki, персонального блога или иного сервиса, который бы отвечал на вопросы, которые поднимаются неоднократно.
Я тут третий день, а оказывается, что на все вопросы уже отвечали и больше ответов не будет
:D

Кстати, вопрос про мои сценарии тоже уже превысил квоту ответов?
http://www.yiiframework.ru/forum/viewto ... 19&t=36639

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Unknown Class. Namespace missing?

Сообщение zelenin » 2016.05.05, 16:11

lgXenos писал(а):
zelenin писал(а):а) на форуме этот вопрос озвучивался неоднократно
Иногда я удивляюсь, что у программистов этого форума еще не появилось FAQ, Wiki, персонального блога или иного сервиса, который бы отвечал на вопросы, которые поднимаются неоднократно.
меня удивляет почему нельзя текст ошибки тупо в гугл вбить - там куча ссылок именно по этому вопросу https://www.google.ru/search?client=ubu ... zAW0hoiwAw
тупо и лень отвечать на справочные вопросы. форум должен быть для обсуждения интересных вопросов и для обмена опытом, а не для прокладки между дебилом и гуглом.
lgXenos писал(а):Кстати, вопрос про мои сценарии тоже уже превысил квоту ответов?
http://www.yiiframework.ru/forum/viewto ... 19&t=36639
я видел тему. сценарии якобы прикольная тема, а на самом деле заморочная, и те, кто их юзает, "сам себе злобный Буратино". Поэтому по сценариям вопросов на форуме очень мало, т.к. их никто не юзает. слишком yii-specific.

lgXenos
Сообщения: 241
Зарегистрирован: 2015.11.30, 15:42

Re: Unknown Class. Namespace missing?

Сообщение lgXenos » 2016.05.05, 16:25

zelenin писал(а):.
Понял.
:)

neokortex
Сообщения: 2
Зарегистрирован: 2016.05.05, 01:00

Re: Unknown Class. Namespace missing?

Сообщение neokortex » 2016.05.05, 17:43

Решился вопрос!!!

Всем спасибо!

Проблема была в том что у меня была путаница в use в начале файла - надо быть повнимательней.

Всем спасибо!

Закрыто