2016-01-18 2 views
3

У меня есть проект yii2, настроенный на phpstorm 8.0.3. Моя структура пространства имен выглядит следующим образом:Неопределенный класс, если класс находится в другом пространстве имен

backend\ 
    controllers 
    models 
    ... 
frontend\ 
    controllers 
    models 
    .. 
common\ 
    controllers 
    models 

Я использовал композитор по проекту и имеют различные установленные в зависимостей папке поставщика.

Всякий раз, когда я пытаюсь использовать класс, который не находится в том же базовом пространстве имен (frontend, backend или common), я получаю сообщение об ошибке неопределенного класса. Странным является пространство имен класса автозаполнения:

enter image description here

Еще одна странность в том, что ошибка не определен класс исчезает для некоторых классов, если файл с определенным классом открыт.

ответ

8

Похоже кэш PhpStorm был каким-то образом поврежден. Я закончил недействительным кеш, перейдя на File ->Invalidate Caches/Restart. Это удалило мою историю, но устранило проблему неопределенного класса.

1

Вы должны объявить в разделе use раздел nedded класс или пространство имен. Например, если вам нужно использовать BaseController из custom\controllers имен:

<?php 
namespace frontend\components; 

// Add this line 
use common\controllers\BaseController; 

class Controller extends BaseController { 
} 
+0

Это также не работает. – topher

0

Я думаю, что у вас есть какие-то проблемы с композитором автозагрузку. Try:

composer update 
Смежные вопросы