Как да изградите модулни приложения в Laravel: Подходът Plug N Play - Част 1

Знанието е процес на натрупване на факти; мъдростта се крие в тяхното опростяване.

Простота; звучи невероятно и интересно нали? За да можете да изградите модули (подсистема) извън проекта си и да ги използвате повторно в друг проект. Да! И това ще ви покажа в тази статия, но първо нека разберем решението, което се опитваме да решим.

Проблемът

Laravel е прекрасна PHP рамка с прилична, мащабируема архитектура и хубава структура на папки. Но има моменти, когато приложението ви става по-голямо, кодовата ви база става по-голяма и става прекомерна за управление.

Ако сте работили по големи приложения преди, може би сте забелязали, че рано или късно завършвате с подути контролери. Дори ако използвате интерфейсни или сервизни класове за извличане на логика от контролера, количеството на зависимостите, методите и редовете на кода ще расте с времето.

Наскоро @sprinble започнахме да работим върху огромен корпоративен проект, използвайки Laravel 5.7, който щеше да бъде огромен проект по отношение на функционалността. Имайки предвид мащаба на приложението, различните модули, които ще има, и вместо да разглобяваме всяко нещо (контролери, модели и изгледи и т.н.) в съществуващите директории, които Laravel предоставя, решихме да приложим модули, така че всеки от модулите ще има всичко, което е разделено (това е контролери, модели, изгледи, средно ниво, всякакви помощници и т.н.). И най-красивата част от всичко е, че тези модули могат лесно да бъдат включени в друг проект или да се споделят лесно в екипи, което спестява много време.

Решението

Решението, до което стигнахме, беше да изградим всяка част от приложението като модул самостоятелно, но може да комуникира с други модули в приложението, което в термина на Software Engineering се нарича Loose Coupling. Това ни доведе до пакет Laravel, наречен „nwidart / laravel-модули“.

nwidart / laravel-module е пакет Laravel, който е създаден за управление на голямото ви приложение Laravel с помощта на модули. Модулът е като пакет от Laravel, той има някои изгледи, контролери или модели. Този пакет се поддържа и тества в Laravel 5+.

Пакетът nwidart / laravel-модули е преиздадена, реорганизирана и поддържана версия на „pingpong / module“, която вече не се поддържа. За повече информация относно този пакет. Натисни тук.

Моля, следвайте стъпката по-долу, за да внедрите същата структура, подобна на модул, за следващия си голям проект.

Изпълнение на решението

изискване

Според документацията на пакета, пакетът изисква PHP 7.1 или по-висока версия, а също така изисква Laravel 5.7, за да работи.

Инсталиране и настройка

За да инсталирате пакета чрез Composer, изпълнете следната команда:

композиторите изискват nwidart / laravel-модули

Пакетът автоматично ще регистрира доставчик на услуги и псевдоним. Можете също по желание да публикувате конфигурационния файл на пакета, като изпълните:

php занаятчийски доставчик: публикувай - доставчик = ”Nwidart \ Модули \ LaravelModulesServiceProvider”

По подразбиране класовете на модулите не се зареждат автоматично. Можете да зареждате автоматично модулите си с помощта на psr-4. Например :

psr-4 автоматично зареждане

И, моля, не забравяйте да стартирате композиционния dump-autoload след горните процеси.

Как да създадете модул

Сега е време да създадем модул в нашето приложение. За да направите това, изпълнете командата по-долу:

php занаятчийски модул: направи

Бърз съвет: Моля, винаги използвайте споразумението за именуване на CamelCasing, когато именувате вашите модули.

Също така е възможно да се създадат няколко модула в една команда като тази, показана по-долу:

php занаятчийски модул: направете Blog Blog Auth

Командата по-горе ще създаде три различни модула Blog, User и Auth модули.

След създаването на модул трябва да получите нещо подобно на изображението, показано по-долу:

Структура на модула

Можете ли да забележите разликата? Папката „Модули“ съдържа всички създадени от вас модули, така че можете да продължите напред и да кликнете върху папката „Модули“, за да видите съответно всичките си модули и техните файлове.

През цялото време беше вълнуващ момент, за да можете да модулирате приложението си Laravel за по-добро управление и използване.

С това стигнахме до края на тази първа част на „Как да изградим модулни приложения в Laravel“. В тази част успяхме да постигнем как да създадем модули и защо трябва да създаваме модули.

Така че в част 2 на „Как да изградим модулно приложение в Laravel - Част 2“ ще разгледаме как можем да използваме създадените от нас модули, като изпълняваме миграции, сеялки, използвайки маршрути, модели, контролери и изгледи.

Благодарим ви за четенето и моля, не забравяйте да дадете клауза, за да могат другите да открият тази статия лесно.