Laravel Idea
341 subscribers
51 photos
8 videos
1 file
12 links
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Что скажете? Хочу еще для enum отдельное, для чисел разных(например для правила integer). Может еще для uuid… тут буду рад если подскажет, кто так делает для реквестов - как код должен выглядеть.
Эта последняя фича с методами форм-реквестов показала насколько сильно я отстал от ларковской жизни. Когда я активно писал на ней - это было вполне норм. И генерация таких методов вполне оправдывала бы себя. А сейчас - там есть удобные методы типа ->date() ->enum() и так далее. Актуальность написания своих таких методов близка к нулю. Теперь придется надеяться только на активный фидбек юзеров… 🙁
Зато теперь я знаю какие фичи надо реализовывать) Человек 24 бакса в месяц за это просит! (Петя, включи комментарии в канале. Иногда интересно же пообсуждать)
Новая бизнес-ниша: нейронка по модели SaaS заточенная под генерацию кода Laravel проектов https://smousss.com

На самом деле у них нет никакой своей нейронки, они перенаправляют запросы в OpenAI API с заранее отточенными настройками prompt, результат пишется сразу в PHP файлы на локальной машине пользователя. Удобная обёртка, чтобы не копипастить код туда-сюда вручную в/из ChatGPT.

Пока заготовлены такие сценарии:
- Convert all your tests from PHPUnit to Pest 2
- Create Laravel Nova admin panels at light speed
- Enjoy the convenience of migrations again
- Magically add missing Model Factories
- Make entire Laravel projects translatable

Пример: создание Fillament админки по классу модели
php artisan smousss:filamentize App\\Models\\Post
This media is not supported in your browser
VIEW IN TELEGRAM
Недавно обсуждали как оптимизировать конфигурацию групповых .env-значений. Сделал вот так. Тупо по префиксу. С дефолтными значениями. Что скажете?
Выпустил сегодня релиз с небольшим фиксом и поддержкой пакета роут-атрибутов от Спати. Он позволяет роуты делать в стиле симфони(если не ошибаюсь, я хз, может они там до сих пор на yaml-файлах роуты делают): атрибутами на методах и классах контроллеров.

Вообще, я раньше не знал как это сделать. Ведь надо сканить весь проект в поисках этих атрибутов. Делать еще один индекс, который будет у каждого сканить весь проект, для одного не самого популярного пакета - странное решение. Но где-то год назад я завел один индекс, который сканит весь проект, но я в нем вычисляю очень много мета-информации о проекте: гейты авторизации, макросы, блейд-директивы и еще штук 10 разных вещей. И благодаря ему моментально ищу эти вещи в проекте.

Присобачил роуты-атрибуты туда тоже и очень легко все реализовалось.
This media is not supported in your browser
VIEW IN TELEGRAM
С полисями была проблема, пока нет второго аргумента - непонятно что подсказывать в первом. Вчера засел решать проблему. Буду изо всех сил вытаскивать возможный класс модели и подсказывать нужные полиси к нему. С красивым комплитом переменной или Сontact::class, например.
Laravel Idea-7.1.2.231.zip
8.3 MB
Кроме полной переработки работы с Policies, сделал несколько вещей, обязанных повысить стабильность плагина. Но такие вещи вполне могут и дать обратный эффект - начать генерить эксепшены постоянные) Я у себя посмотрел - вроде все нормально.

Просьба поставить у себя и посмотреть правильно ли работает умная подсказка полисей и нет ли падений(эксепшены вылазят красной штукой справа внизу - там же можно отправить Report - он упадет прямо ко мне - я буду очень рад). Плагин ставится так: качается файл, в шторме в настройках Plugins > колесико > Install from file.
Некоторые уже в курсе, что мы с JetBrains сделали общий bundle, в котором пользователи могут купить шторм вместе с плагином со скидкой. За подробностями сюда.

Картинку взял с корейского обьявления. Там логотип Laravel Idea кажется самым главным)
Jeffrey Way выкладывает на laracasts целый курс про PhpStorm + Laravel Idea. По одному уроку за рабочий день, поэтому я ждал пока выложит последнее, касающееся плагина. Если вдруг кто не видел: https://laracasts.com/series/phpstorm-for-laravel-developers/episodes/1
This media is not supported in your browser
VIEW IN TELEGRAM
Рефакторил весь UI. У меня там минифреймворк образовался над UI-компонентами. И вот я осознал, что упоролся совсем... Но уже поздно. Эти настройки влияют на весь UI Laravel Idea.
Я наконец нашел то апи, которым можно управлять видом того, когда выбираешь например GoTo к ключу транслейшена. Когда их много было ужасно(на картинке вверху). А теперь прилично будет(внизу). Похоже настала пора и поддержку json-ключей для переводов и т.д. Там внутри плагина прям большая переделка будет.
Наконец дошли руки, чтобы запускать команды. Пока сидеры, потом будут артисан-команды с параметрами. Кто готов протестировать запуск сидеров через docker-интерпретатор в шторме? Пишите в комментах.
This media is not supported in your browser
VIEW IN TELEGRAM
Продолжаю добавлять улучшалки жизни. Тут придется сесть и опять захардкодить все имена методов, таких как "map", "where" и еще десятки других... причем для map не надо будет подсказывать билдеры например, поэтому надо еще и разное поведение хардкодить.

Умом понимаю, что этот путь хардкода не очень красивый, но ничего получше в данных условиях придумать пока не могу.
7.3 версия вышла. много вкусного. Сидеры как следует не потестили. В итоге если у них неймспейсы есть, то не запускаются, но это поправим.
Уже два дня полностью переписываю механизм работы с локализацией. Это позволило добавить комплишен для JSON-ключей.

Сам я ненавижу такой подход к локализации, но надо терпеть и делать клиентам хорошо)
This media is not supported in your browser
VIEW IN TELEGRAM
Недавно поработал над мелким laravel-проектом и понял, что крайне не хватает одной фичи. Особенно когда только начал проект. Забивание всех полей в вызовы типа User::create() и другие, где надо кучу полей писать. Пора это исправлять. Делаю сейчас умное заполнение таких массивов нужными значениями($this->fieldName для ресурсов, $request->fieldName в контроллере и т.д.)
This media is not supported in your browser
VIEW IN TELEGRAM
продолжаю эксперименты
This media is not supported in your browser
VIEW IN TELEGRAM
Многие знают, что я ненавижу правила валидации, которые лезут в базу сами. Но комплишены к ним добавить - нет проблем)
Что-то я слегка подзабил на канал, поэтому решил превратить его в основной официальный канал продукта. Буду теперь постить регулярно все новости сюда. На английском. А комментить можно на любом, на котором я пойму(татарский в приоритете).
Channel photo updated