Rakenna Laravel sovellus Dependency Injection

Tässä artikkelissa käymme läpi Laravel sovelluksen rakentamisen Dependency Injection riippuvuuksien hallintaan ja ylläpidettävämmän lähdekoodirakenteen luomiseen. Luomme yksinkertaisen esimerkin tuoteluettelon hallinnasta myymälässä.

Vaihe 1: Valmistelu

Varmista ensin, että olet Laravel asentanut tietokoneellesi. Voit luoda Composer uuden Laravel projektin:

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

Kun olet luonut projektin, siirry projektihakemistoon:

cd DependencyInjectionApp

Vaihe 2: Luo Service ja Interface

Aloitetaan luomalla service tuoteluettelon hallinta. Luo interface ja luokka, joka toteuttaa tämän interface:

Luo tiedosto app/Contracts/ProductServiceInterface.php:

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

Luo tiedosto 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  
    }  
}  

Vaihe 3: Rekisteröidy Service säilöön

Avaa tiedosto app/Providers/AppServiceProvider.php ja lisää funktioon register:

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

Vaihe 4: Käyttö Dependency Injection

Ohjaimessa voit Dependency Injection ruiskuttaa ProductService:

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

Johtopäätös

Hyödyntämällä Dependency Injection ja Service Säiliötä in Laravel, olemme rakentaneet sovelluksen tuoteluettelon hallintaan. Tämä lähestymistapa tekee lähdekoodista ylläpidettävämmän ja vähentää sovelluksen eri komponenttien välisiä riippuvuuksia.

Harjoittele ja mukauta projektia tarpeidesi mukaan saadaksesi syvemmän käsityksen sovelluksen Dependency Injection käytöstä Laravel.