I denne artikkelen vil vi gå gjennom å bygge en Laravel applikasjon som bruker Dependency Injection til å administrere avhengigheter og lage en mer vedlikeholdbar kildekodestruktur. Vi skal lage et enkelt eksempel på å administrere en produktliste i en butikk.
Trinn 1: Forberedelse
Først må du kontrollere at du har Laravel installert på datamaskinen. Du kan bruke Composer til å opprette et nytt Laravel prosjekt:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
Etter å ha opprettet prosjektet, naviger til prosjektkatalogen:
cd DependencyInjectionApp
Trinn 2: Lag Service og Interface
La oss starte med å lage en service for å administrere produktlisten. Lag en interface og en klasse som implementerer dette interface:
Lag filen app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Lag 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
}
}
Trinn 3: Registrer deg i Service containeren
Åpne filen app/Providers/AppServiceProvider.php
og legg til register
funksjonen:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
Trinn 4: Bruk Dependency Injection
I kontrolleren kan du bruke Dependency Injection til å injisere ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Konklusjon
Ved å bruke Dependency Injection og Service containeren i Laravel har vi bygget en applikasjon for å administrere en produktliste. Denne tilnærmingen gjør kildekoden mer vedlikeholdbar og reduserer avhengighetene mellom ulike komponenter i applikasjonen.
Øv på og tilpass prosjektet etter dine behov for å få en dypere forståelse av bruk Dependency Injection i Laravel.