Vytvoření Laravel aplikace s Dependency Injection

V tomto článku si projdeme vytvořením Laravel aplikace, která se používá Dependency Injection ke správě závislostí a vytváření lépe udržovatelnou strukturu zdrojového kódu. Vytvoříme jednoduchý příklad správy seznamu produktů na prodejně.

Krok 1: Příprava

Nejprve se ujistěte, že jste Laravel na svém počítači nainstalovali. Composer K vytvoření nového projektu můžete použít Laravel:

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

Po vytvoření projektu přejděte do adresáře projektu:

cd DependencyInjectionApp

Krok 2: Vytvořte Service a Interface

Začněme vytvořením service pro správu seznamu produktů. Vytvořte interface třídu a, která toto implementuje interface:

Vytvořte soubor app/Contracts/ProductServiceInterface.php:

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

Vytvořte soubor 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  
    }  
}  

Krok 3: Zaregistrujte se v Service kontejneru

Otevřete soubor app/Providers/AppServiceProvider.php a přidejte do register funkce:

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

Krok 4: Použití Dependency Injection

V ovladači můžete použít Dependency Injection k injekci ProductService:

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

Závěr

Využitím Dependency Injection a Service kontejneru v Laravel, jsme vytvořili aplikaci pro správu seznamu produktů. Tento přístup umožňuje lépe udržovat zdrojový kód a snižuje závislosti mezi různými komponentami aplikace.

Procvičte si a upravte projekt podle svých potřeb, abyste získali hlubší porozumění použití Dependency Injection v Laravel.