Пятиминутка PHP – Telegram
Пятиминутка PHP
2.86K subscribers
334 photos
26 videos
825 links
Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Темы про СУБД, Linux, DevOps

Автор: @petrmyazin
Download Telegram
Как быстро запустить PHPStan из PhpStorm?

(не из консоли, а через интегрированный интерфейс PhpStorm - мы же в IDE работаем в конце концов)

Шаг 1: подключить PHPStan к PhpStorm через Settings -> PHP -> Quality Tools -> PHPStan = ON

Теперь непосредственно в редакторе кода будут подсвечены проблемные места – это отрабатывает новый Inspection, наличие которого можно проверить в Settings -> Editor -> Inspections -> поиск по слову «phpstan» -> PHPStan validation галочка.

Шаг 2: как проверить все файлы в проекте? Меню: Code -> Analize Code -> Run Inspection by Name… (обратие внимание в меню на незапоминаемый хоткей) – далее в поиске набрать название нашего Inspection = «phpstan»

Шаг 3: а можно без длинных меню и сложных хоткеев?
Да, есть несколько вариантов, которые я перепробовал, вот самый быстрый:

3.1 Settings -> Editor -> Inspections -> создать новый Profile, назвав его, например, «PHPStan Only»

3.2 На Toolbar добавить новую иконку: кликнуть правой кнопкой по Toolbar -> Customize Toolbar… -> кнопка в виде плюса «Add Action…» -> поиском найти действие «Inspect Code…» - таким образом на панели кнопок будет быстрая кнопка эквивалентная меню Code -> Inspect Code…

3.3 Особенность диалога Inspect Code… в том, что он предлагает выбрать профиль, по которому нужно проверить проект, и далее он запоминает выбранный в последний раз профиль! Именно для этого мы создали профиль «PHPStan Only» - выбрав один раз, следующий запуск сведётся до двух кликов. Впрочем, можно и удобный хоткей для вызова этого диалога настроить: Settings -> Keymap -> в поиске набрать «Inspect Code» и назначить хоткей. Этот способ немного удобнее того, что я описал как «Шаг 2» - теперь нам не нужно вводить название инспекции «phpstan», теперь есть профиль и он уже выбран по умолчанию в диалоге «Inspect Code…»
🔥19👍5👀2👎1
В продолжение предыдущего поста: как узнать, есть ли возможность настроить ту или иную функцию в PhpStorm? А какие варианты вообще бывают, чтобы выбрать наиболее удобный для себя?

Раньше я гуглил. У JetBrains достаточно подробная документация, зачастую находятся нужные ссылки, но дальше нужно вчитываться.

Удача, если конкретно мой вопрос кто-то уже задал на StackOverflow или в YouTrack (багтрекер для всех продуктов JetBrains) - можно найти конкретный рецепт по шагам.

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

Вчера попробовал для этих целей непосредственно AI Assistant в PhpStorm. Под капотом он отправляет запросы всё в тот же API OpenAI (по сути в ChatGPT), но теперь это выглядит как "справка по программе здорового человека". У меня есть вопрос к PhpStorm, я его пишу непосредственно в PhpStorm и получаю конкретный ответ.

Выводы: если вы пишете софт и к нему есть подробная документация, которая, будучи проиндексированной, могла бы стать пищей для ума AI, то попробуйте подключить в свой софт "справочный центр" на базе ChatGPT (или аналогов)!
👍17🔥5👎21
Решил попробовать запустить Qodana на своём проекте 😱🤦😭

(что такое Qodana: https://www.jetbrains.com/ru-ru/qodana/)
🔥17😁4
Я попросил DALL-E нарисовать PHP. И сделать его лучшим языком программирования. Ещё лучше! PHP Best of the Best на все времена! PHP - язык, который преисполнился всей вселенной!
😁32👏29🤡5👍1🔥1
Вчера узнал, что внутри Яндекса есть анонимный imageboard под названием ячан (не уверен как пишется, возможно на английском yachan). И по этическим соображениям треды удаляются черз 3 дня - классика 😂 Интересно, есть ли международных крупных корпорациях внутренние анонимные имаджборды? GoogChan? MicroChan? FaceChan? AmazChan?
😁19🤯2
Forwarded from PHP of By (Community Org)
42 - это не только ответ на "Главный вопрос жизни, вселенной и вообще", но и порядковый номер митапа PHPofBy, который состоится 19 Декабря в 19.00 (+3).

На завершающем митапе в этом году Игорь Филиппов покажет нам бельгийское кунг-фу и научит готовить Laravel в стиле Spatie

Дмитрий Джумагалиев скомбинирует доклад с воркшопом и научит использовать PACT для контрактного тестирования

Ну а Кирилл Несмеянов покажет, что на самом деле мы не знаем PHP :)

Страница митапа тут: https://wearecommunity.io/events/phpofby-meetup-42
Ссылка на трансляцию тут: https://www.youtube.com/watch?v=lt2jbzTbPxM

Читайте подробное описание, и регистрируйтесь - нам как всегда важно понимать, сколько вас будет :)
9👏1
Заглянул в репозиторий https://github.com/php/php-langspec и обнаружил, что обновлений в master почти нет, а среди веток только PHP-5.6 и PHP-7.0. Выходит у PHP нет актуальной версии спецификации, есть только спека уровня 7.0 (или чуть выше) и набор RFC принятых поверх? 🧐
🤔11
Media is too big
VIEW IN TELEGRAM
Олег Тиньков поясняет за PHP 8.3
😁56🔥17👍6👎42💩1
Forwarded from Alisa Kruglova [MSK -2]
🎄 Итоги 2023 в PHP-комьюнити

Привет! phpcommunity.ru проводит четвертый ежегодный опрос. По традиции узнаем расклад по версиям языка в командах, фреймворкам, инструментам, лучшим статьям и видео по мнению сообщества. И, конечно, разыграем PHP-слона и другой мерч.

Опрос помогает видеть, как развивается сообщество, и готовить митапы, статьи и конференции по актуальным темам.

Найди 5 минут, чтобы подвести итоги своего PHP-года:

📥Заполнить опрос

Форму закроем 8 января 2024. Результатами поделимся в конце января.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🤮1
Есть фрагмент кода, который генерирует набор уведомлений для пользователя.

Каждый вид уведомления формируется своим методом, итого имеем множество методов. Их стало слишком много, пришло время разделить эту кодовую базу на несколько классов.

Первый метод я вынес в отдельный класс вручную.

Далее сформировал инструкцию для AI: "вынеси такой-то метод в отдельный класс, оринетируйся на мой пример..."

Использовал утилиту Aider (https://aider.chat/), в которую зашиты протестированные system и user prompts, также эта утилита умеет отправлять в качестве контекста содержимое файлов исходного кода.

Как выглядел процесс:
- добавление файлов в контекст запроса происходит командой /add и этот процесс очень медленный, чуть ли не минуту на каждый файл (я добавил два файла = 2 минуты)
- далее отправляю основной prompt - нужно подождать ещё около минуты, пока не начнёт генерироваться ответ
- ответ приходит строка за строкой, медленно, наблюдаю в консоли
- как только передача ответа завершилась в дело вступает утилита Aider, которая должна создать новый файл на диске (новый класс) и скорректировать старый код, подставив вызов нового класса. Новый класс был создан без части кода и с обновлением текущего файла не вышло.

Что произошло: ответ от GPT содержал кривой diff, который Aider не смог наложить на существующий исходник. В этом случае в Aider предусмотрена автоматизация: он отправляет новый запрос в OpenAI с просьбой вернуть корректный diff. И опять длительное ожидание.

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

В следующий раз опишу, как эту же задачу я решал с помощью Aider + локально запущенной модели DeepSeek Coder (https://huggingface.co/TheBloke/deepseek-coder-6.7B-instruct-GGUF) и с помощью GitHub Copilot Chat в PhpStorm.
👍14😁1