Laravel Alkalmazás készítése Dependency Injection

Laravel Ebben a cikkben egy alkalmazás felépítését mutatjuk be Dependency Injection a függőségek kezelésére és egy karbantarthatóbb forráskód-struktúra létrehozására. Létrehozunk egy egyszerű példát a terméklista kezelésére az üzletben.

1. lépés: Előkészítés

Először is győződjön meg arról, hogy telepítette Laravel a számítógépére. Composer Új projekt létrehozásához használhatja Laravel:

composer create-project --prefer-dist laravel/laravel DependencyInjectionApp

A projekt létrehozása után lépjen a projektkönyvtárba:

cd DependencyInjectionApp

2. lépés: Hozzon létre Service és Interface

Kezdjük azzal, hogy létrehozzuk service a terméklistát. Hozzon létre egy interface és egy osztályt, amely ezt megvalósítja interface:

Hozd létre a fájlt app/Contracts/ProductServiceInterface.php:

<?php  
  
namespace App\Contracts;  
  
interface ProductServiceInterface  
{  
    public function getAllProducts();  
    public function getProductById($id);  
}  

Hozd létre a fájlt app/Services/ProductService.php:

<?php  
  
namespace App\Services;  
  
use App\Contracts\ProductServiceInterface;  
  
class ProductService implements ProductServiceInterface  
{  
    public function getAllProducts()  
    {  
        // Logic to get all products  
    }  
  
    public function getProductById($id)  
    {  
        // Logic to get product by ID  
    }  
}  

3. lépés: Regisztráljon a Service tárolóban

Nyissa meg a fájlt app/Providers/AppServiceProvider.php, és adja hozzá a register függvényhez:

use App\Contracts\ProductServiceInterface;  
use App\Services\ProductService;  
  
public function register()  
{  
    $this->app->bind(ProductServiceInterface::class, ProductService::class);  
}  

4. lépés: Használat Dependency Injection

A vezérlőbe a következőket használhatja Dependency Injection a következő befecskendezésére ProductService:

use App\Contracts\ProductServiceInterface;  
  
public function index(ProductServiceInterface $productService)  
{  
    $products = $productService->getAllProducts();  
    return view('products.index', compact('products'));  
}  

Következtetés

Dependency Injection A és a Service Container használatával Laravel építettünk egy alkalmazást a terméklista kezelésére. Ez a megközelítés karbantarthatóbbá teszi a forráskódot, és csökkenti az alkalmazás különböző összetevői közötti függőséget.

Gyakorolja és szabja testre a projektet igényeinek megfelelően, hogy mélyebben megértse a Dependency Injection használatot Laravel.