Izrada Laravel aplikacije s Dependency Injection

U ovom ćemo članku proći kroz izradu Laravel aplikacije koja se koristi Dependency Injection za upravljanje ovisnostima i stvaranje strukture izvornog koda koja se lakše održava. Napravit ćemo jednostavan primjer upravljanja popisom proizvoda u trgovini.

1. korak: priprema

Prvo provjerite jeste li instalirali Laravel na svoje računalo. Composer Za izradu novog projekta možete koristiti Laravel:

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

Nakon izrade projekta, idite na direktorij projekta:

cd DependencyInjectionApp

Korak 2: Stvorite Service i Interface

Započnimo stvaranjem service popisa proizvoda za upravljanje. Napravite klasu interface i klasu koja implementira ovo interface:

Kreirajte datoteku app/Contracts/ProductServiceInterface.php:

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

Kreirajte datoteku 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  
    }  
}  

Korak 3: Registrirajte se u Service spremniku

Otvorite datoteku app/Providers/AppServiceProvider.php i dodajte u register funkciju:

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

Korak 4: Korištenje Dependency Injection

U kontroleru možete koristiti Dependency Injection za ubrizgavanje ProductService:

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

Zaključak

Korištenjem Dependency Injection i Service spremnika u Laravel, izgradili smo aplikaciju za upravljanje popisom proizvoda. Ovaj pristup čini izvorni kod lakšim za održavanje i smanjuje ovisnosti između različitih komponenti aplikacije.

Vježbajte i prilagodite projekt prema svojim potrebama kako biste stekli dublje razumijevanje korištenja Dependency Injection u Laravel.