Lumen er et splitter nytt PHP-mikroramme utviklet av forfatteren av Laravel-rammeverket, Taylor Otwell. Ikke stress, skjønt-Lumen er ikke ment å erstatte Laravel. Faktisk er ideen bak Lumen at den utfyller dine eksisterende eller fremtidige Laravel-applikasjoner.
Taylor Otwell utviklet Lumen med noen svært spesifikke formål i tankene, nemlig mikroservices og APIer. Bare kort er en microservice en mindre, avkoblet prosess som kommuniserer med en større applikasjon, f.eks. vår Laravel søknad.
I denne artikkelen vil jeg gå over hva som er forskjellig i Lumen, når vi skal bruke Lumen, og hvordan vi kan bruke Lumen. Jeg vil også forklare hvordan vi kan ta vår Lumen-applikasjon og enkelt overføre den til en fullstabel Laravel-applikasjon. Det vil ikke være mye kode, da Lumen er mye det samme som Laravel. La oss komme i gang.
Dette vil mest sannsynlig være det første spørsmålet som mange av dere vil spørre. I virkeligheten er ikke mye mye "nytt" med lumen bortsett fra limet. Lumen bruker fremdeles de fleste Illuminate-komponentene som utgjør Laravel-rammen (det mangler bare et par). Tenk på det som en slanket Laravel-installasjon.
Målet er å maksimere ytelsen, og for å få denne økningen i ytelse, har flere ting blitt endret. De viktigste av disse er følgende:
config
katalog i en Lumen installasjon. I stedet bruker du .env
filer for å konfigurere det meste av søknaden din.Det er noen avganger her. FastRoute er en veldig rask implementering, men det er ikke så funksjonelt pakket som Symfony-ruteren. Hvis du vil bruke sub-domain routing, må du holde fast med en Laravel-installasjon som bruker Symfony-ruteren.
Den andre avstanden som er verdt å nevne er at for finere kontroll over konfigurasjonen av visse komponenter, må du endre konfigurasjonsfiler i leverandør / laravel / lumen-rammeverk
katalogen. Størstedelen av konfigurasjonen kan gjøres gjennom .env
filer, men noen mindre konfigurerte ting er ikke direkte konfigurerbare.
Svaret her vil avhenge, men sannsynligvis ikke. Hvis du utvikler eller har utviklet en applikasjon på Laravel (4 eller 5), vil du sannsynligvis ikke trenger å bytte til Lumen akkurat i så liten minutt. Mens Lumen er i stand til å utvikle et fullblåst nettapplikasjon, er det bedre egnet til mindre, avkoblede tjenester og APIer.
Jeg kan ikke fortelle deg når du kan og ikke kan bruke et rammeverk som er tilgjengelig for deg. Jeg vil imidlertid gjøre noen anbefalinger når du kan vurdere å bruke Lumen til en del av ditt neste prosjekt.
La oss si at du bygger et stort nettbutikkprogram. Så du går videre og installerer Laravel og kommer til å jobbe med en monolitisk applikasjon. Nå er det ingenting galt med denne tilnærmingen, og du kan finne det fungerer bra for deg. Hvis ja, fortsett. Hvis du finner at du blir overveldet av kompleksiteten, eller ting ser ut til å bli litt ut av hånden, kan du dele det opp i noen mindre, mer håndterbare brikker.
Du vil bruke Lumen til å lage separate applikasjoner for hver avkoblet tjeneste. For vår butikk kan vi dele fakturering, e-postvarsler, frakt og sporing for å skille applikasjoner. Hver av disse programmene ville være en selvstendig Lumen installasjon, og hver applikasjon ville bare gjøre en bestemt oppgave.
For å gjøre det mulig for vårt hovedprogram å kommunisere med våre avkoblede tjenester, vil vi benytte køer og en tjeneste som Amazon SQS. Vi kan bruke køer til å kjøre jobber enkelt, og hver tjeneste vil lytte etter bestemte jobber og behandle dem når de er i kø. Fordelen med denne tilnærmingen er at hver tjeneste kan skaleres og distribueres uavhengig av hverandre.
Du kan også bruke Lumen til å bygge en API som også kan bli konsumert av hovedprogrammet ditt ved hjelp av en HTTP-klient som Guzzle. Med denne avkoblingen kan du skala og optimalisere forretningssiden av søknaden din uten å forstyrre resten.
Nå bør du ha en god ide om hvorvidt bruk av Lumen er det rette skrittet for deg. Installere Lumen er like enkelt som å installere Laravel: en enkel komponistskap-prosjekt
kommandoen, eller du kan installere lumen
kommandoen for å skape nye prosjekter. Vi bruker bare Komponist til å hente en ny installasjon.
komponist opprette-prosjekt laravel / lumen LumenProject --prefer-dist
Komponist vil trekke ned alle avhengighetene. Du kan bruke Artisan til å raskt tjene opp applikasjonen for å ta en titt, eller du kan sette opp et virtuelt vert eller homestead-nettsted. Uansett, når du slår veien til Lumen-installasjonen, ser du den skinnende plaska siden, og informerer deg om at Lumen er bra å gå.
Konfigurasjon er ferdig i .env
filer, så du vil enten endre navn på .env.example
fil eller kopier innholdet til en ny fil.
Den gjenværende oppstartingen som du vil være oppmerksom på er i bootstrap / app.php
fil. Hvis du bruker .env
konfigurasjon nevnt ovenfor, så vil du ikke kommentere Dotenv :: load (__ DIR __. '/ ... /');
. Ruller gjennom denne filen vil du se flere kommenterte linjer som du kanskje vil ikke kommentere. Det er lasting av fasader, Eloquent, noen middlewares, og registrering av andre tjenesteleverandører.
Du har nå fått deg en nyinstallert og konfigurert kopi av Lumen klar til å bygge noe fantastisk.
Du kan bygge din Lumen-applikasjon, og alt går helt greit, til en skjebnesvangre dag når du innser at du trenger noe som bare fullstabilt Laravel-rammeverket tilbyr. Ikke stress, men det er en ekstremt smertefri oppgradering. Her følger trinnene:
app
katalogen. Vær oppmerksom på at du kanskje trenger noen ting fra L5 app
katalog, for eksempel leverandører.config
katalog.Det bør være hovedparten av det du trenger å kopiere for å migrere Lumen-programmet til Laravel. Selvfølgelig virker dette på begge måter, slik at du enkelt kan overføre en Laravel-applikasjon til Lumen hvis du skjønner at du ikke trenger alt full-stack-rammeverket tilbyr.
For å pakke opp dette, vil jeg bare påpeke at jeg fortaler bruk av Lumen primært for dekoblede tjenester og APIer, som er den tilsiktede bruken. Det er ikke å si at du ikke kan bygge en hel applikasjon på Lumen, fordi du kan. Hvis du velger å gjøre det, er det greit. Det er ikke noen regler skåret i en stentabletter som forteller deg hva du kan og ikke kan bruke til dine prosjekter. På slutten av dagen er beslutningen overlatt til deg. Vekt alternativene dine, planlegg prosjektet ditt, avgjøre hva du trenger, konsulter teamet ditt, og gjør deretter din endelige avgjørelse.