Существуют ли какие-то устоявшиеся паттерны, если я хочу всё приложение сделать в виде Laravel-Composer-пакетов?

Да, в Laravel существуют устоявшиеся паттерны при разработке приложений в виде Laravel-Composer-пакетов. Это практика, которая позволяет разбить приложение на отдельные модули, которые можно использовать повторно, а также делиться ими с другими разработчиками. Разработка приложений в виде пакетов упрощает поддержку кода и повышает его гибкость.

Один из распространенных паттернов при разработке Laravel-Composer-пакетов - это использование сервис-провайдеров и контейнера зависимостей. Сервис-провайдеры в Laravel - это классы, которые регистрируют компоненты в контейнере зависимостей. Контейнер зависимостей - это механизм, который позволяет управлять зависимостями между различными классами в приложении.

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

Также в разработке Laravel-Composer-пакетов применяется паттерн "Зависимость от интерфейса, а не от реализации". Это означает, что модули основаны на интерфейсах, а не на конкретных реализациях. Это позволяет легко заменять одну реализацию на другую без изменения кода, что обеспечивает гибкость и легкость изменения приложения.

При разработке пакетов важно также учитывать использование пространств имен и автозагрузки. Пространства имен позволяют организовать ваш код в логические группы, что упрощает его структуру и обслуживание. Автозагрузка классов в Laravel обеспечивает автоматическую загрузку классов при обращении к ним, что значительно упрощает разработку и управление зависимостями.

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