Dans cet article, nous allons parcourir la création d'une Laravel application en utilisant Dependency Injection pour gérer les dépendances et créer une structure de code source plus maintenable. Nous allons créer un exemple simple de gestion d'une liste de produits dans un magasin.
Étape 1: Préparation
Tout d'abord, assurez-vous que vous avez Laravel installé sur votre ordinateur. Vous pouvez utiliser Composer pour créer un nouveau Laravel projet :
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
Après avoir créé le projet, accédez au répertoire du projet :
cd DependencyInjectionApp
Étape 2: Créer Service et Interface
Commençons par créer un service pour gérer la liste des produits. Créez une interface et une classe qui implémente ceci interface:
Créez le fichier app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Créez le fichier 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
}
}
Étape 3: Enregistrez-vous dans le Service conteneur
Ouvrez le fichier app/Providers/AppServiceProvider.php
et ajoutez à la register
fonction :
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
Étape 4: Utilisation Dependency Injection
Dans le contrôleur, vous pouvez utiliser Dependency Injection pour injecter ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Conclusion
En utilisant Dependency Injection et le Service conteneur dans Laravel, nous avons construit une application pour gérer une liste de produits. Cette approche rend le code source plus maintenable et réduit les dépendances entre les différents composants de l'application.
Entraînez-vous et personnalisez le projet en fonction de vos besoins pour mieux comprendre l'utilisation Dependency Injection de Laravel.