Laravel — по умолчанию против модульного подхода

#laravel

#laravel

Вопрос:

Каковы рекомендации по группировке вашей бизнес-логики в Laravel? Я нахожу Laravel довольно запутанным, когда дело доходит до больших веб-приложений. Должны ли мы продолжать использовать расположения файлов Laravel по умолчанию или кто-нибудь пробовал использовать модульный пакет, такой какhttps://github.com/nWidart/laravel-modules ?

Комментарии:

1. Я думаю, это зависит от разработчика и их подхода. У меня очень структурированный подход, но он не работает модульно. Просто взгляните на то, как вы обычно работаете, и принимайте на этом решение.

2. @Collin Спасибо. Интересно услышать плюсы и минусы от всех, кто использовал модульный пакет.

Ответ №1:

Laravel — фантастическая платформа не только благодаря своему элегантному синтаксису и быстрому инструменту разработки, но и благодаря своему сообществу и пакетам с открытым исходным кодом. Эти пакеты значительно сокращают время разработки.

Модули

Модули похожи на пакеты в том смысле, что у них есть свои собственные модели, представления, контроллеры, миграции и другие классы.

Все контроллеры и модели по умолчанию размещаются в приложении / папке в программе Laravel, в то время как миграции, Сеялка, поставщики и другие компоненты имеют свою собственную папку. Эти папки становятся неудобными по мере разработки приложения. Становится трудно найти логику для определенной части приложения.

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

Чтобы использовать модули в Laravel, просто автоматически загрузите папку Modules с помощью PSR-4, и все готово. Однако это повлечет за собой дополнительные задачи, такие как регистрация пространства имен для языка, представлений и конфигурации, а также выполнение миграции.

Модули Laravel

  • Установка модулей Laravel аналогична установке любого другого пакета.

  • Laravel Modules предоставляет команды Artisan для создания новых модулей, активации / деактивации модулей, создания миграций. Ниже приведен краткий скриншот различных команд artisan, которые он предоставляет.

  • Когда вы создаете новый модуль, он также регистрирует новое пользовательское пространство имен для Lang, View и Config.

    Lang::get(‘blog::group.name ‘); @trans(‘blog::group.name ‘);

  • Помимо этого, он также предоставляет полезные фасадные методы, модульные методы

  • А также можете публиковать свои модули, похожие на пакет (документ).

Как мы использовали модули Laravel?

Изначально, когда мы начали работать над приложением для pos (точки продажи), у нас не было идеи создавать разные модули. Но по мере того, как возрастали требования к подключаемому ресторанному расширению для него, идея создания модульного приобрела больше смысла. Итак, после создания и добавления ресторанов и многих других дополнительных модулей мы добавили настройку для каждого бизнеса, чтобы включать или отключать разные модули. Module::all(); метод использовался для перечисления различных модулей, имеющихся в приложении. Каждый бизнес может включать или отключать модули для них в соответствии со своими потребностями. Мы использовали комбинацию Module: has(‘блог’); настройки бизнеса, чтобы проверить, доступен ли модуль и включен ли он. Модуль (или расширение, или плагин) можно поместить в любое другое приложение для добавления функциональности.