Applicatie bouwen Laravel met Dependency Injection

Laravel In dit artikel zullen we het bouwen van een applicatie doorlopen Dependency Injection om afhankelijkheden te beheren en een beter onderhoudbare broncodestructuur te creëren. We zullen een eenvoudig voorbeeld maken van het beheren van een productlijst in een winkel.

Stap 1: Voorbereiding

Zorg er eerst voor dat u Laravel op uw computer hebt geïnstalleerd. U kunt gebruiken Composer om een ​​nieuw Laravel project aan te maken:

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

Navigeer na het maken van het project naar de projectdirectory:

cd DependencyInjectionApp

Stap 2: Maak Service en Interface

Laten we beginnen met het maken van een service om de productlijst te beheren. Maak een interface en een klasse die dit implementeert interface:

Maak het bestand aan app/Contracts/ProductServiceInterface.php:

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

Maak het bestand aan 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  
    }  
}  

Stap 3: Registreren in de Service container

Open het bestand app/Providers/AppServiceProvider.php en voeg toe aan de register functie:

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

Stap 4: gebruiken Dependency Injection

In de controller kunt u gebruiken Dependency Injection om het volgende te injecteren ProductService:

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

Conclusie

Door gebruik te maken van Dependency Injection en de Service Container in Laravel, hebben we een applicatie gebouwd om een ​​productlijst te beheren. Deze benadering maakt de broncode beter onderhoudbaar en vermindert de afhankelijkheden tussen verschillende componenten van de applicatie.

Oefen en pas het project aan volgens uw behoeften om een ​​beter begrip te krijgen van het gebruik Dependency Injection in Laravel.