Erstellen einer Laravel Anwendung mit Dependency Injection

In diesem Artikel gehen wir Schritt für Schritt durch die Erstellung einer Laravel Anwendung, mit der wir Dependency Injection Abhängigkeiten verwalten und eine besser wartbare Quellcodestruktur erstellen können. Wir erstellen ein einfaches Beispiel für die Verwaltung einer Produktliste in einem Geschäft.

Schritt 1: Vorbereitung

Stellen Sie zunächst sicher, dass Sie es Laravel auf Ihrem Computer installiert haben. Sie können Folgendes verwenden Composer, um ein neues Laravel Projekt zu erstellen:

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

Navigieren Sie nach dem Erstellen des Projekts zum Projektverzeichnis:

cd DependencyInjectionApp

Schritt 2: Erstellen Service und Interface

Beginnen wir mit der Erstellung eines, service um die Produktliste zu verwalten. Erstellen Sie eine interface und eine Klasse, die dies implementiert interface:

Erstellen Sie die Datei app/Contracts/ProductServiceInterface.php:

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

Erstellen Sie die Datei 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  
    }  
}  

Schritt 3: Registrieren Sie sich im Service Container

Öffnen Sie die Datei app/Providers/AppServiceProvider.php und fügen Sie der register Funktion Folgendes hinzu:

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

Schritt 4: Verwenden Dependency Injection

Im Controller können Sie Dependency Injection Folgendes injizieren ProductService:

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

Abschluss

Durch die Verwendung von Dependency Injection und des Service Containers in Laravel haben wir eine Anwendung zum Verwalten einer Produktliste erstellt. Dieser Ansatz macht den Quellcode besser wartbar und reduziert Abhängigkeiten zwischen verschiedenen Komponenten der Anwendung.

Üben Sie das Projekt und passen Sie es an Ihre Bedürfnisse an, um ein tieferes Verständnis für die Verwendung zu Dependency Injection erlangen Laravel.