nvlad / yii2support

Yii2 Support for PhpStorm / IntelliJ IDEA
https://plugins.jetbrains.com/idea/plugin/9388-yii2-support
Other
295 stars 54 forks source link

Некорректная работа с View контроллеров во вложенных папках #166

Closed Yannn closed 6 years ago

Yannn commented 6 years ago

Если контроллеры лежат не в папке controllers, но и вложенных, например, controllers/admin, то в контроллерах подобных controllers/admin/IndexController не распознается обращение к вьюхе вида $this->render('view'), хотя должно распознаваться как к views/admin/index/view.php.

И спасибо за крутейший плагин, не мешало бы обзавестись другим способом поддержки (Я.Деньги?) paypal и биткоин не имеется.

nvlad commented 6 years ago

Какую версию плагина используете? И какая версия IDE? В недавнем релизе 0.8.38 была полностью переработана работа с View. И данная проблема не должна возникать.

Спасибо, приятно слышать, что наш проект помогает людям! По поводу добавления других способов поддержки проекта - обязательно займусь на днях)

Yannn commented 6 years ago

В том то и дело, что увидел обновление про пути представлений и сразу обновился до 0.8.38.1, но не помогло, вьюху подчеркивает и не переходит на нее конечно clip_2

nvlad commented 6 years ago

можете прислать структуру проекта более развёрнуто? если открыт то ссылку на него, если нет, то дерево проекта, с указанием где расположен контроллер и где расположен вид который не обнаруживается плагином? можно на почту support@nvlad.com

Yannn commented 6 years ago

да все просто вроде, привожу пример на одной вьюхе, но не работает и на других аналогичных clip_3 clip_4

nvlad commented 6 years ago

Очень странно. Воспроизвёл структуру файлов, похожую на вашу, view нашёлся и открывается (проверено на PhpStorm 2016.2, PhpStorm 2017.3 и PhpStorm 2018.1 EAP)

Предлагаю попробовать следующее: 1) посмотреть ошибки в работе плагина (на скрине нарисовал куда смотреть) 2) сбросить кэш и индексы (File -> Invalidate Caches / Restart...) 3) прислать следующую информацию: ОС, версия IDE, используемый шаблон Yii, версия Yii

monosnap 2018-03-08 12-16-34

mmkulikov commented 6 years ago

Отличный плагин. Но обновился на 0.8.38.1 и получил аналогичную проблему даже со стандартной структурой папок. Вот скрин https://yadi.sk/i/vf6pT8pQ3TBrUX

mmkulikov commented 6 years ago

2018-03-09_14-27-46

mmkulikov commented 6 years ago

Invalidate cache не помогает. А к этому функционалу уже привык-с ((

nvlad commented 6 years ago

@mmkulikov первое что бросается в глаза, сайт на yii расположен не в корневой директории проекта. Уже получается не совсем стандартная структура. Где у вас расположены папка vendor? много ли у вас в этом проекте папок сайтами на yii? (таких как папка bwn расположенная в корне проекта).

mmkulikov commented 6 years ago

2018-03-09_15-13-40

mmkulikov commented 6 years ago

Vendor в bwn. В bwn развернут стандартный advanced шаблон YII2

mmkulikov commented 6 years ago

2018-03-09_15-15-34

nvlad commented 6 years ago

никогда так не структурировал проект, обычно все связанные файлы храню в корне проекта в директории /resources расположенной рядом с frontend, backend.

попробуйте прилагаемый билд, должен заработать, а после тестов выпущу в релиз.

yii2support.jar.zip

mmkulikov commented 6 years ago

никогда так не структурировал проект,

Там есть файлы никак не связанные непосредственно с сайтом, но связаны с проектом. Потому вполне логично "опустил" весь сайт в папку. Это ведь структура проекта, а не структура непосредственно на сервере. На сервере будет только "чистый" код, без лишнего мусора. Корень git`a - это у меня не корень проекта, а корень как раз сайта

А по делу. Никогда не ставил плагины с архива. Попробую - отпишусь

mmkulikov commented 6 years ago

попробуйте прилагаемый билд, Ставлю. Перегружается иде - всё плагина нет в списке. Раз десять попробовал ставить/переставлять... Как только перегружается иде после установки плагина он перестает работать и иде его не видит. Установка с офрепозитория последней версии ставится, работает, но естественно с той ошибкой...

Может я как-то не так ставлю? Но после этого- он пропадает 2018-03-12_10-55-26

nvlad commented 6 years ago

Ставите сам архив или файл из архива?

mmkulikov commented 6 years ago

Сам архив

nvlad commented 6 years ago

Надо файл из архива (.jar), приходится запаковывать, так как github запрещает выкладывать jar

mmkulikov commented 6 years ago

Да. Так получилось. Работает.

mmkulikov commented 6 years ago

Обновления следующие сам подхватит? Не помешает что я руками ставил?

nvlad commented 6 years ago

да, обновления должны нормально приходить.

piliugin commented 6 years ago

Аналогичная проблема после обновления на 0.8.38.1, view подчеркиваются красным и при клике никакого перехода. Сброс кеша не помог, ошибок плагина нет, установка из архива yii2support.jar.zip (yii2support.jar) тоже не решила проблему. 2018-03-14 10 46 06 2018-03-14 10 42 03 2018-03-14 10 43 19

nvlad commented 6 years ago

@piliugin перенесите проект на первый уровень вложенности в проекте.

PS: Сколько у вас в проекте Yii проектов?

piliugin commented 6 years ago

@nvlad это не совсем правильно с точки зрения структуры проекта. Не хотелось бы мешать исходный код с файлами настройки сборки, окружения, утилит валидации кода и т.д. Мне кажется, правильнее было бы вынести в настройки плагина опцию для указания корня проекта.

PS: Сколько у вас в проекте Yii проектов?

один

mmkulikov commented 6 years ago

перенесите проект на первый уровень вложенности в проекте.

Извиняюсь что влезаю. Но почему проект сторма должен быть корнем yii? Это не логично и не удобно. В проекте сторма, например, я храню и другие "нужные" вещи, к примеру всякие доступы, логины, тз и прочую лабуду от заказчика... Мне кажется что Вы несколько не с той "стороны" подошли к отсчету путей. Сам YII прекрасно как-то справляется с отсчетом от @app

mmkulikov commented 6 years ago

2018-03-14_19-03-15 Перестал "подсказывать" (давать на выбор) если вьюха лежит в подпапке

nvlad commented 6 years ago

@piliugin отчасти согласен, по этому добавил поиск Yii проектов в папках первого уровня. По поводу настройки пути к Yii проекту - была мысль, но пока не хочу тратить на это время. Да и опять же кто-то убирает корень yii проекта на вторую третью вложенность, кто-то захочет сделать 2-3 yii проекта в одном шторм проекте, ситуация не стандартная и редко встречаемая. Так что пока предлагаю воспользоваться моим предложением или создать проект в папке с yii и открывать его в отдельном окне шторма.

@mmkulikov по мне так всё наоборот логично и удобно, yii проект делаю в шторме, а "логины, доступы, тз и прочую лабуду от заказчика" на гугл диске в папке "работа/заказчик/проект" шторм не поддерживает doc, pdf, xls и прочие форматы в которых обычно присылают информацию заказчики, а вот гугл диск прекрасно с ними справляется. По поводу точки отсчёта - как-то не встречал ранее подхода используемого вами, и в реализации проще именно так. Опять же Вы писали что .git у вас находится в корне сайта, а не корне проекта... как бы намекает. В Yii корнем папка куда развернули шаблон yii приложения и где расположен .git (что можно изменить, если захотеть), вот и у меня отсчёт от корня проекта, только штормовского.

В общем хочу подвести итог нашего общения: 1) Как хранить проект и сопутсвующие файлы - дело вкуса. 2) Плагин работает сейчас именно так и когда изменится не известно. 3) Могу предложить поучаствовать в развитии проекта и реализовать этот функционал самим, мы будем рады Вашему участию.

nvlad commented 6 years ago

@mmkulikov по поводу view при работе с почтой - вынес в отдельное Issue #168 можете подписаться на обновления статуса.

mmkulikov commented 6 years ago

2018-03-15_11-36-04 Вот собственно такая "необычная" вьюха. Вполне реально работает. Но к сожалению в плагине ошибка получается. Вьюха от контроллера бэкенда (хотя это в принципе должно быть без разницы).

mmkulikov commented 6 years ago

Могу предложить поучаствовать в развитии проекта и реализовать этот функционал самим, мы будем рады Вашему участию.

Я так понимаю, что вся проблема в "поиске" корня YII проекта... Не вижу ничего сложно. Присоединиться - я подумаю над этим предложением, хотя языком для написания как я понимаю является java - не самый мой любимый язык )) но имел возможность и на нём писать.

nvlad commented 6 years ago

@mmkulikov костыль в виде поиска уже сделан (по первому уровню вложенности) в версии которую публиковал в этой ветке, но как оказывается его мало. Надо делать какое-то более правильное решение, например настройку с указанием корня проекта (если отбросить возможность добавления нескольких yii проектов в один проект шторма).

Да, разработка ведётся на Java, вроде как можно ещё Kotlin использовать, но пока не пробовали. Java это меньшее из бед, главная беда это плохая документации IntelliJ Plugin API.

mmkulikov commented 6 years ago

если отбросить возможность добавления нескольких yii проектов в один проект шторма

Это уже кощунство :) А по "поиску", может стоит поискать файл YII который в корне yii проекта всегда? Это как вариант...

это плохая документации IntelliJ Plugin API.

Это да ))

nvlad commented 6 years ago

Это уже кощунство :) Мне вот в голову не приходило вкладывать проект в папку :) Так что если мы что-то не делаем, не значит что этого не делает кто-то другой)

А по "поиску", может стоит поискать файл YII который в корне yii проекта всегда? Это как вариант...

В чистом yii-app-basic четыре yii файла :) image

В принципе подобным образом и делаю только ищу файл /vendor/yiisoft/yii2/Yii.php. Поиск по вложенностям крайне извратный получился, да и перебирать весь проект не хочу.

mmkulikov commented 6 years ago

Поиск по вложенностям крайне извратный получился, да и перебирать весь проект не хочу.

Так у сторма же индекс есть. Или он никак не поможет? Никак не воспользоваться его "родным" поиском? Ведь он довольно шустро ищет в проекте файл по Ctrl+Shift+N

mmkulikov commented 6 years ago

В чистом yii-app-basic четыре yii файла :)

composer.json может?

piliugin commented 6 years ago

composer.json может?

composer.json может быть еще и в разных других директориях, не только в корне yii-проекта

nvlad commented 6 years ago

Так у сторма же индекс есть. Или он никак не поможет? Никак не воспользоваться его "родным" поиском? Ведь он довольно шустро ищет в проекте файл по Ctrl+Shift+N

он умеет только по имени файла, по маске не умеет

composer.json может?

тогда 68 файлов :)

mmkulikov commented 6 years ago

он умеет только по имени файла, по маске не умеет

Так маска и не нужна. Надо по полному имени файла.

piliugin commented 6 years ago

Возврат к версии 0.7.35.2 для меня решил проблему с переходами к файлам view.

nvlad commented 6 years ago

Так маска и не нужна. Надо по полному имени файла.

@mmkulikov результаты поиска не дают точной картины расположения корня Yii, как и текущая реализация поиска.

Возврат к версии 0.7.35.2 для меня решил проблему с переходами к файлам view.

@piliugin да, в той версии работа с view была реализована по другому. В вашем случае может быть её хватит, но из наиболее популярных проблем: нет поддержки вложенных папок с видами, нет поддержки тем.

nvlad commented 6 years ago

В новой версии добавил настройку для указания корневой папки Yii. Качайте, тестируйте :)

mmkulikov commented 6 years ago

В новой версии добавил настройку для указания корневой папки Yii.

Не нахожу её. ( И судя по всему из-за этого опять все вьюхи "красные"

mmkulikov commented 6 years ago

2018-03-16_10-52-51 Нашел. Может кому-то тоже поможет :)