Sådan bygges modulopgaver i Laravel: Plug N Play-metoden - Del 1

Viden er en proces med at samle fakta; visdom ligger i deres forenkling.

Enkelhed; det lyder forbløffende og interessant ikke? For at du kan bygge moduler (et undersystem) fra dit projekt og genbruge dem i et andet projekt. Ja! Og det er det, jeg vil vise dig i denne artikel, men lad os først forstå den løsning, vi prøver at løse.

Problemet

Laravel er en vidunderlig PHP-ramme med en anstændig, skalerbar arkitektur og en dejlig mappestruktur. Men der er tidspunkter, hvor din ansøgning bliver større, din kodebase bliver større, og det bliver overvældende at administrere.

Hvis du har arbejdet med store applikationer før, har du måske bemærket, at du ender med oppustede controllere før eller senere. Selv hvis du bruger interface- eller serviceklasser til at udtrække logik fra controlleren, vil mængden af ​​afhængigheder, metoder og kodelinjer vokse over tid.

For nylig begyndte vi @sprinble at arbejde på et stort virksomhedsprojekt ved hjælp af Laravel 5.7, som ville blive et kæmpe projekt med hensyn til funktionalitet. I betragtning af programmets skala, de forskellige moduler, den vil have, og i stedet for at chunke alle ting op (controllere, modeller og visninger osv.) I de eksisterende mapper, som Laravel leverer, besluttede vi at implementere moduler, således at hvert af modulerne vil have alt (det er controllere, modeller, visninger, mellemværker, eventuelle hjælpere osv.) adskilt. Og den smukkeste del af det hele er, at disse moduler let kan tilsluttes et andet projekt eller deles på tværs af teams nemt, hvilket sparer en masse tid.

Løsningen

Løsningen, vi ankom til, var at bygge hver del af applikationen som et modul på egen hånd, men kan kommunikere med andre moduler i applikationen, der benævnes Loose Coupling i Software Engineering-sigt. Dette førte os til en Laravel-pakke kaldet ‘nwidart / laravel-modules’.

nwidart / laravel-modules er en Laravel-pakke, der blev oprettet til at administrere din store Laravel-app ved hjælp af moduler. Modulet er som en Laravel-pakke, det har nogle visninger, controllere eller modeller. Denne pakke understøttes og testes i Laravel 5+.

Pakken nwidart / laravel-modules er en genudgivet, omorganiseret og vedligeholdt version af 'pingpong / modules', som ikke er vedligeholdt mere. For mere information om denne pakke. Klik her.

Følg nedenstående trin for at implementere den samme modullignende struktur til dit næste store projekt.

Implementering af løsningen

Krav

I henhold til pakkens dokumentation kræver pakken PHP 7.1 eller nyere og kræver også, at Laravel 5.7 fungerer.

Installation og opsætning

Hvis du vil installere pakken gennem Composer, skal du køre følgende kommando:

komponist kræver nwidart / laravel-moduler

Pakken registrerer automatisk en tjenesteudbyder og et alias. Du kan også valgfrit offentliggøre pakkens konfigurationsfil ved at køre:

php håndværksleverandør: publish - provider = ”Nwidart \ Modules \ LaravelModulesServiceProvider”

Som standard indlæses modulklasser ikke automatisk. Du kan automatisk indlæse dine moduler vha. Psr-4. For eksempel :

psr-4 autoload

Og glem ikke at køre komponist dump-autoload efter ovenstående processer.

Sådan opretter du et modul

Nu er det tid for os at oprette et modul i vores applikation. For at gøre dette skal du køre kommandoen nedenfor:

php håndværksmodul: lav

Hurtigt tip: Brug altid CamelCasing-navnekonvention, når du navngiver dine moduler.

Det er også muligt at oprette flere moduler i en kommando som dem, der vises nedenfor:

php håndværksmodul: opret blogbruger autent

Kommandoen ovenfor opretter tre forskellige moduler Blog-, User- og Auth-moduler.

Efter oprettelse af et modul skal du få noget, der ligner billedet, der vises nedenfor:

Modulstruktur

Kan du se forskellen? Mappen 'Moduler' indeholder alle de moduler, du har oprettet, så du kan gå videre og klikke på mappen 'Moduler' for at se henholdsvis alle dine moduler og deres filer.

Det har været et spændende øjeblik hele tiden at være i stand til at modularisere din Laravel-applikation for bedre styring og brug.

Med dette er vi kommet til slutningen af ​​denne første del af 'Sådan bygger du modulære applikationer i Laravel'. I denne del var vi i stand til at opnå, hvordan man opretter moduler, og hvorfor vi skulle oprette moduler.

Så i del 2 af "Sådan bygges modulær applikation i Laravel - Del 2" vil vi se på, hvordan vi kan bruge de moduler, vi har oprettet, som at køre migrationer, såmaskiner, bruge ruter, modeller, controllere og visninger.

Tak, fordi du læste, og glem ikke at give et klap, så andre let kan finde denne artikel.