Jak stavět modulární aplikace v Laravelu: Přístup Plug N Play - část 1

Znalosti jsou procesem hromadění faktů; moudrost spočívá v jejich zjednodušení.

Jednoduchost; zní to úžasně a zajímavě, že? Abyste mohli z vašeho projektu vytvořit moduly (podsystém) a znovu je použít v jiném projektu. Ano! A to je to, co vám ukážu v tomto článku, ale nejprve pojďme pochopit řešení, které se snažíme vyřešit.

Problém

Laravel je nádherný rámec PHP s slušnou škálovatelnou architekturou a pěknou strukturou složek. Ale jsou chvíle, kdy se vaše aplikace zvětšuje, vaše kódová základna se zvětšuje a správa se stává ohromující.

Pokud jste dříve pracovali na velkých aplikacích, možná jste si všimli, že dříve nebo později skončíte s nafouknutými řadiči. I když k extrahování logiky z řadiče používáte třídy rozhraní nebo služeb, množství závislostí, metod a řádků kódu v průběhu času poroste.

Nedávno jsme @sprinble začali pracovat na obrovském podnikovém projektu za použití Laravel 5.7, který měl být z hlediska funkčnosti obrovským projektem. Vzhledem k rozsahu aplikace, různým modulům, které bude mít, a namísto toho, abych zablokoval všechny věci (řadiče, modely a pohledy atd.) Ve stávajících adresářích, které poskytuje Laravel, jsme se rozhodli implementovat moduly tak, aby každý z modulů bude mít všechno (to jsou ovladače, modely, pohledy, middlewares, pomocníci atd.) odděleny. A nejkrásnější část toho všeho je, že tyto moduly lze snadno zapojit do jiného projektu nebo snadno sdílet mezi týmy, což šetří spoustu času.

Řešení

Řešení, ke kterému jsme dospěli, bylo sestavení každé části aplikace jako samostatného modulu, ale může komunikovat s ostatními moduly v aplikaci, která se v termínu softwarového inženýrství nazývá Loose Coupling. To nás vedlo k Laravelovu balíčku nazvanému „nwidart / laravel-modules“.

nwidart / laravel-modules je balíček Laravel, který byl vytvořen pro správu vaší velké aplikace Laravel pomocí modulů. Modul je jako balíček Laravel, má některé pohledy, řadiče nebo modely. Tento balíček je podporován a testován v Laravel 5+.

Balíček nwidart / laravel-modules je znovu publikovaná, reorganizovaná a udržovaná verze „pingpong / modules“, která již není udržována. Další informace o tomto balíčku. Klikněte zde.

Postupujte podle níže uvedeného kroku a implementujte stejnou strukturu jako ve vašem dalším velkém projektu.

Implementace řešení

Požadavek

Podle dokumentace balíčku vyžaduje balíček PHP 7.1 nebo vyšší a také vyžaduje práci Laravel 5.7.

Instalace a nastavení

Chcete-li balíček nainstalovat pomocí programu Composer, spusťte následující příkaz:

skladatel vyžaduje moduly nwidart / laravel

Balíček automaticky zaregistruje poskytovatele služeb a alias. Můžete také volitelně publikovat konfigurační soubor balíčku spuštěním:

Prodejce php artisan: publish - provider = ”Nwidart \ Modules \ LaravelModulesServiceProvider”

Ve výchozím nastavení nejsou třídy modulů načítány automaticky. Moduly můžete automaticky načíst pomocí psr-4. Například :

psr-4 autoload

A nezapomeňte po výše uvedených procesech spustit autodopravu skladatele.

Jak vytvořit modul

Nyní je čas, abychom vytvořili modul v naší aplikaci. Chcete-li to provést, spusťte níže uvedený příkaz:

php artisan module: make

Rychlý tip: Při pojmenovávání modulů vždy používejte konvenci pojmenování CamelCasing.

Je také možné vytvořit více modulů jedním příkazem, jako je níže uvedený:

php artisan module: make Blog User Auth

Výše uvedený příkaz vytvoří tři různé moduly Blog, User a Auth.

Po vytvoření modulu byste měli získat něco podobného obrázku níže:

Struktura modulu

Vidíte ten rozdíl? Ve složce „Moduly“ jsou umístěny všechny moduly, které jste vytvořili, takže můžete pokračovat a kliknutím na složku „Moduly“ zobrazit všechny své moduly a jejich soubory.

Byl to vzrušující okamžik po celou dobu, kdy bylo možné modularizovat aplikaci Laravel pro lepší správu a používání.

Tím jsme dospěli na konec této první části „Jak stavět modulární aplikace v Laravelu“. V této části se nám podařilo dosáhnout toho, jak vytvářet moduly a proč bychom je měli vytvářet.

Takže v části 2 „Jak vytvořit modulární aplikaci v Laravelu - část 2“ se podíváme na to, jak můžeme používat moduly, které jsme vytvořili, jako je běh migrací, secí stroje, používání tras, modelů, kontrolérů a pohledů.

Děkujeme vám za přečtení a nezapomeňte dát tleskání, aby ostatní mohli tento článek snadno najít.