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.