CLI интерфейс для Laravel Artisan
Хочу представить composer-пакет для Laravel, возможно кому-то придётся по душе.
Суть проще показать, чем объяснять.
Кого заинтересовало — прошу под кат.
А зачем?
А почему бы и нет? Я, например, пришёл к этой мысли после того как в очередной раз забыл как правильно — «make: migration» или «migration: make» или может совсем какое-то «create: migration». Вот ей богу, каждые несколько дней приходится создавать эти миграции, а я всё равно не всегда помню название команд! А уж о каких-нибудь «config: clear», которые используются крайне редко — так вообще молчу.
Это раз. А два — мне всегда нравились консольные интерфейсы. Есть в них что-то эдакое. Поэтому решил совместить приятное с полезным.
А какие команды поддерживаются?
Абсолютно все, которые работают через стандартный artisan, потому как я использую те же классы что и он. Ну, это в теории :) На практике пока проблем не встречал, но уверен что более широкая аудитория с чем-то да столкнётся.
Кастомные команды в моём проекте
А я не люблю синюю консоль
No problem, цвета и размеры настраиваются в файле config/artisanui.php. Главное не забудьте сделать config: cache после изменений.
Уговорил, как попробовать?
Да вот тут github.com/VladReshet/ArtisanUI, собственно, всё написано. Поставил пакет, добавил сервис провайдер в config/app.php, запаблишил его — готово, можно пробовать. Есть правда небольшая проблема с композером — если у вас в composer.json указано minimal-stability: stable, то ничего не получится, так как временно я использую нестабильную версию нужной мне зависимости.
А что под капотом?
А под капотом вот эта прелесть github.com/php-school/cli-menu. Надеюсь авторы найдут время допилить следующий релиз.
А на сколько стабильно?
На «свежем» laravel, только установленном — проверял все пункты стандартного artisan, всё работает. Со зрелыми проектами — ну, должно работать, а там, если что, issues на гитхабе всё покажут) В любом случае это решение скорее для локальной разработки, чем для использования в продакшн.
Ну и ещё несколько скриншотов напоследок:
Комментарии, конструктивные замечания, рекомендации — приветствуются. Даже если никто не заинтересуется — это был интересный процесс скрещивания ежа с ужом копания в исходниках Laravel:)