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.