I den här artikeln kommer vi att gå igenom att bygga en Laravel applikation som använder Dependency Injection för att hantera beroenden och skapa en mer underhållbar källkodsstruktur. Vi kommer att skapa ett enkelt exempel på att hantera en produktlista i en butik.
Steg 1: Förberedelser
Se först till att du har Laravel installerat på din dator. Du kan använda Composer för att skapa ett nytt Laravel projekt:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
När du har skapat projektet, navigera till projektkatalogen:
cd DependencyInjectionApp
Steg 2: Skapa Service och Interface
Låt oss börja med att skapa en service för att hantera produktlistan. Skapa en interface och en klass som implementerar detta interface:
Skapa filen app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Skapa filen 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
}
}
Steg 3: Registrera dig i Service behållaren
Öppna filen app/Providers/AppServiceProvider.php
och lägg till register
funktionen:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
Steg 4: Använda Dependency Injection
I styrenheten kan du använda Dependency Injection för att injicera ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Slutsats
Genom att använda Dependency Injection och Service behållaren i Laravel har vi byggt en applikation för att hantera en produktlista. Detta tillvägagångssätt gör källkoden mer underhållbar och minskar beroenden mellan olika komponenter i applikationen.
Öva och anpassa projektet efter dina behov för att få en djupare förståelse för att använda Dependency Injection i Laravel.