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.