#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(‘блог’); настройки бизнеса, чтобы проверить, доступен ли модуль и включен ли он. Модуль (или расширение, или плагин) можно поместить в любое другое приложение для добавления функциональности.