Комментарии 63
Да, такое давно уже можно было. Откройте http://localhost:63344/<название_проекта>.
Довольно толковый релиз получился. Молодцы.
А теперь ложку дегтя:
Когда завезут нормальную поддержку Blade шаблонов? Этот вопрос висит уже много лет и нет никакого развития в эту сторону. Скорее наоборот — с каждой версией IDE становится всё хуже. Самая боль — подсказка имен переменных работает только в редких случаях. Например, если в шаблоне через phpdoc указать входящие переменные, то в Blade директивах нет подсказки имен к ним, но после того как полностью введено имя переменной, IDE его кое-как сопоставляет с тем что определено в PHPdoc (через Ctrl видно тип и даже начинает работать подсказка свойств объекта если переменная — объект), но как бы это уже не особо полезно. Аналогичная проблема с блоками @php
и <?php ?>
— они вообще живут в разных областях видимости даже относительно остальных Blade директив. Хотелось бы чтобы поддержка Blade шаблонов была более адекватной, чтобы не приходилось варить кашу из костылей типа такого:
<?php
/**
* @var array $array
*/
?>
@foreach($array as $value)
@php(/** var array $value */ $varname = array_get($value, 'key', 'default'))
{{ $varname }}
<?php echo $array . $value . $varname ?>
@endforeach
Тут проблема чуть ли не в каждой строке:
- Определенную в PHPdoc переменную
$array
не видно в Blade директивах, соответственно никаких подсказок имени в@foreach
или в других блоках - В блоке
@php()
не видно переменную$value
настолько что IDE выдает там ошибку 'Undefined variable $value' если не прописать/** var array $value */
- В блоке
@php()
при прописанном/** var array $value */
ошибки нет, но есть предупреждение 'Expresion result is not used anywhere' хотя на следующей строке переменная используется - в строке
{{ $varname }}
IDE не знает о переменной$varname
, т.е. и тут нет подсказки имени - в строке
<?php echo ?>
IDE видит$array
, но$value
и$varname
подсвечивает с ошибками 'Undefined variable $value' и 'Undefined variable $varname'
Как видите — пользоваться такой реализацией совершенно не удобно. Это сплошная борьба с IDE вместо того чтобы заниматься чем-то полезным. В целом эффективность написания Blade шаблона в блокноте не сильно ниже чем в PHPStorm. Надеюсь Вас это заденет.
На все эти косяки есть Issue в багтрекере, которые игнорируются годами. Ну тут ничего нового — в JetBrains это уже стало традицией =( Как и то что я к каждому релизу на что-то жалуюсь на Хабре =)
К сожалению, проблемы действительно известные. Blade — собой очень сложный темплейт для поддержки в IDE, так как это PHP файл под которым лежит HTML да ещё и с инжекшенами PHP. Каждая директива — это отдельный инжекшен, заставить общаться между собой отдельные инжекшены, и инжекшены с кусками <?php ?>
очень нетривиальная задача.
Понимаю что сложно, но надо как-то решать, ато вот вообще больно стало этим всем пользоваться.
Может на основе настроек Blade директив из настроек IDE конвертировать код в чистый html c php вставками и уже анализировать его?
Это так же позволит настройками Blade директив внедрять специальные переменные типа $loop
в итераторы @for
, @foreach
и т.п. Пример настройки Suffix для each директивы: ); /** @var \stdClass $loop */ ?>
Не используйте этот грустный Blade. Что он вам даёт такого, что вы прямо жить без него не можете?
Секции шаблонов и его расширение из другого шаблона, например.
Оно вполне удобное. Смысла его использовать для простых страниц мало, это да. Но чуть что посложнее — либо он, либо уходить полностью во frontend (vue, react, angular и т.п). Кому что удобнее. Делать свои костыли — не вижу смысла, это бесполезная трата времени (у меня есть несколько таких костылей и этого более чем достаточно чтобы трезво оценивать необходимость новых). Прикручивать к Laravel чужие костыли — а зачем? Есть Blade, он работает достаточно хорошо, но хромает поддержка в IDE.
Не знаю, Twig не использовал. Но он не нативен для Laravel как минимум. Я уж лучше тогда Vue на фронте прикручу — пользы больше будет. Вариант перехода на Symphony не рассматривается — слишком муторно.
Дело в том, что разработчики на Laravel в основном проектами на Laravel и занимаются и для них Blade как раз более знаком, чем Twig. Поэтому использовать Twig в Laravel это скорее минус, т.к. новым разработчикам сложнее будет въехать. Сам работал с обоими, не вижу принципиальной разницы. В чем эта разница для вас?
Просмотр PHP- и HTML-файлов в редакторе— Очень этого не хватало. Большое спасибо!
Ещё есть такой кейс для sftp: на удалённой машине php внутри докера. Хотелось бы смотреть файлы в таком варианте через Brows Remote Host. Или применение sudo на том сервере (без учёта докера), для редактирования файлов. Возможно я не верно себе представляю SFTP и он такого не может.
SFTP в докере можно добавить как обычный SFTP хост, если sftp порт проброшен наружу. Или вы что-то другое имеете в виду?
Про sudo для sftp есть реквест: https://youtrack.jetbrains.com/issue/WI-710 — можете проголосовать за него, чтобы увеличить приоритет. Как минимум, это обновит статус проблемы.
В browse remote hosts используется именно SFTP. Это не выполнение команд в bash, это обособленный протокол с простейшими командами типа ls, lstat, чтение/запись файлов и т.п. По смыслу как FTP, только с буквой S в начале и не FTP внутри.
По факту, голого SFTP не хватает browse remote hosts и сейчас. Draft протокола, реализованный в сервере OpenSSH, не содержит команды для получения uid и gid залогиненного пользователя. Плагин получает uid и gid в обход SFTP, выполняя команду id в отдельном канале SSH. И это не всегда хорошо работает. Например, люди всё ещё иногда пользуются хостингами, где доступен только SFTP, а выполнение команд — нет. На таких серверах в browse remote hosts не работает в полной мере просмотр прав на файл: известен uid файла, но неизвестно, совпадает ли он с пользовательским.
Причём фантазия на способ ограничить доступ в SSH поражает воображение. Помню, был случай, когда одна хостинг-панель из благих намерений реализовала вывод человекочитаемого сообщения при попытке открыть exec или shell канал. И ждала, пока пользователь не нажмёт enter. IDE к такому, мягко говоря, была не готова и покорно ожидала, пока команда id не завершится. А SFTP вполне себе работал.
Так или иначе, обернуть SFTP в sudo или docker exec со стороны клиента не выйдет легко, надо будет делать новую реализацию без SFTP вообще, используя coreutils как в remote toolchains у CLion или загружая на сервер своё приложение как VSCode. Новый код, новая логика, новые неожиданные баги и ограничения, новые байки и страшилки на ночь.
И почему оно с этим обновлением вылезло, ведь 2 месяца багу?
Спасибо за упоминание тикета! Я подниму приоритет. А вылезло после исправления — https://youtrack.jetbrains.com/issue/WI-58543.
Такой вопрос: а будет ли возможность записывать сессии code with me? Просто если да, то по по первому впечатлению будет отличный инструмент для проведения собеседований в удобном кандидату редакторе
Спасибо! Пожалуйста, проголосуйте за https://youtrack.jetbrains.com/issue/CWM-2596.
Очень необходимая фича, тикет создан уже 10 лет, но ни ответа ни привета.
Очень блокирует работу когда идёт сложный конфликт и мерж.
В этом релизе сломан показ боковых панелей по двойному альту. Также не работает авто импорт зависимостей в джаваскрипте. На ошибках синтаксиса, после исправления, уведомление об ошибке не исчезает без перезапуска. Откатился на 2020.3.3
У меня после обновления начались какие-то странные проблемы с поиском. В некоторых файлах не ищет ни по контенту, ни даже по названию файла
К сожалению, это проблема действительно пролезла в релиз. Будет починена в минорном апдейте или можете скачать сейчас билд с фиксом: https://youtrack.jetbrains.com/issue/IDEA-266391#focus=Comments-27-4834028.0-0 или использовать workaround из https://youtrack.jetbrains.com/issue/IDEA-266391.
Хватило только этого (исследовать баги дальше — нет ни времени, ни желания)
Перестал работать поиск по двойнному шифту. Т.е. оно что-то ищет, но вот прямое сравнение с предыдущей версией показывает, что папка vendor почему-то внезапно неохвачена.
Возможно, это меняется где-то в настройках, но кто же делает такие апдейты и не упоминает об этом в Release Notes?
Ах, ну и да, картинка на скрине загрузки специально подобрана чтобы людям со слабой психикой крышу срывать? Какой «нехороший» обезьян ее вообще такую сделал-то?
К сожалению, это проблема действительно есть. Будет починена в минорном апдейте или можете скачать сейчас билд с фиксом: https://youtrack.jetbrains.com/issue/IDEA-266391#focus=Comments-27-4834028.0-0 или ещё проще использовать workaround из https://youtrack.jetbrains.com/issue/IDEA-266391.
Глянул одним глазом после обновления, отвалилось пару плагинов, а так много функционала добавили. Надо будет посидеть потыкать
Чем больше поддержки WSL2, тем лучше! Спасибо!
Очень грустно всё это
Скорее всего у вас — https://youtrack.jetbrains.com/issue/WI-59961. Починим в ближайщее время!
Пожалуйста, верните спокойный splash-скрин, у меня чуть эпилептический припадок не случился когда я его первый раз увидел и теперь приходится отворачиваться каждый раз когда IDE запускаю. ( Речь не конкретно по PHPStorm, а про все ваши IDE )
Swagger: не поддерживаются пути с ~0 (~)
и ~1 (/)
Для пути /blogs/{blog_id}/new~posts
должна поддерживаться ссылка
$ref: '#/paths/~1blogs~1{blog_id}~1new~0posts'
Сейчас на такое ругается в превью и по Ctrl + Click
не переходит.
хороший релиз.
- дебаг твига сделали, а можно ли ожидать проброс контекста в твиг, или как-то указывать что есть что для автокомплита?
- так же бесит окно поиска, что оно упирается в экран и нельзя его ниже опустить
очень это смущает порой, пользуюсь почти всеми продуктами и странно видеть, как в одном ide окно можно передвинуть, а в другом нет. или ещё пример: начав писать на с++ в clion нет возможности свернуть ифы, дефайны, а в других без проблем...
дебаг твига сделали, а можно ли ожидать проброс контекста в твиг, или как-то указывать что есть что для автокомплита?
Пока, к сожалению, нельзя, проголосуйте, чтобы следить за обновлениями — https://youtrack.jetbrains.com/issue/WI-28093
так же бесит окно поиска, что оно упирается в экран и нельзя его ниже опустить
Вы имеете ввиду Find in Files? Вообще оно должно ресайзится и двигаться. Какая у вас ОС?
Например «array(...) -> [...]», «function(...) {...} <-> fn(..) => ...»,
И под JS: "(...) =>… <-> function(...) {...} "
Очень бы помогло легаси код приводить к новому и когда функция становится сложнее…
Была в блоге https://blog.jetbrains.com/pycharm/2021/04/pycharm-2021-1/, а на Хабре не все продукты делают.
А создайте, пожалуйста, тикет в трекере на это https://youtrack.jetbrains.com/issues
Как оказалось подобный запрос уже есть, поэтому ваш тикет привязали к нему и соответственно приоритет повысился.
PhpStorm 2021.1: превью PHP- и HTML-файлов, 20+ новых инспекций и парное программирование с Code With Me