Spatie-пакеты хороши, пока не становятся языком вашей доменной модели
Spatie — не «поставил и забыл». Permissions, Media Library, Activitylog, Data, Query Builder закрывают скучную механику, но добавляют свой слой абстракции. Перед установкой решите: это инфраструктура или часть бизнес-логики?
Чек перед composer require:
— пакет можно убрать без переписывания половины приложения;
— понятно, где живёт состояние: БД, диск, очередь, кэш;
— кастомные маппинги и расширения лежат в одном месте;
— простая таблица не превращается в мини-фреймворк.
Типовая ошибка — делать spatie/laravel-permission моделью оргструктуры. Роли и права — слой доступа. Тарифы, отделы, владельцы лидов и правила выдачи лучше держать в своих таблицах и сервисах.
Нормальный паттерн: Media Library хранит файлы и конверсии, а лимиты и модерация живут отдельно. Activitylog пишет события, но смысл этих событий не размазан по observers.
Вывод: Spatie экономит время, когда стоит на границе инфраструктуры. Если пакет начинает диктовать язык домена — вынесите доменную модель наружу.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
Spatie-пакеты хороши, пока не становятся языком вашей доменной модели
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.