Livewire хорош для CRUD, пока компонент не превращается в скрытый контроллер
Livewire чаще ломают архитектурой: в компонент складывают форму, таблицу, фильтры, модалки, права и бизнес-правила. В итоге любой клик гоняет лишнее состояние, а тесты читаются как лог сервера.
Правила для поддержки:
— компонент хранит состояние экрана, не доменную логику;
— action/service-классы выполняют сложные операции;
— в public-свойствах только то, что нужно браузеру.
Проверка: если метод нельзя назвать UI-глаголом — save, openModal, applyFilters — он живёт не там. recalculatePayout лучше вынести из Livewire.
Для таблиц держите query как конструктор, а не как массив данных в state. Фильтры сериализуются, выборка строится заново, тяжёлые вычисления кэшируются ниже компонента.
Livewire не заменяет архитектуру Laravel. Тонкий компонент между Blade и приложением живёт долго; толстый быстро становится вторым контроллером с магией.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
Livewire хорош для CRUD, пока компонент не превращается в скрытый контроллер
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.