V tem članku se bomo sprehodili skozi gradnjo Laravel aplikacije z uporabo Dependency Injection za upravljanje odvisnosti in ustvarjanje strukture izvorne kode, ki je bolj vzdržljiva. Ustvarili bomo preprost primer vodenja seznama izdelkov v trgovini.
1. korak: Priprava
Najprej se prepričajte, da ste ga Laravel namestili v računalnik. Composer Za ustvarjanje novega projekta lahko uporabite Laravel:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
Ko ustvarite projekt, se pomaknite do imenika projekta:
cd DependencyInjectionApp
2. korak: Ustvarite Service in Interface
Začnimo z ustvarjanjem service za upravljanje seznama izdelkov. Ustvari razred interface in razred, ki izvaja to interface:
Ustvarite datoteko app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Ustvarite datoteko 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
}
}
3. korak: Registrirajte se v Service vsebniku
Odprite datoteko app/Providers/AppServiceProvider.php
in dodajte v register
funkcijo:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
4. korak: Uporaba Dependency Injection
V krmilniku lahko uporabite Dependency Injection za vbrizgavanje ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Zaključek
Z uporabo Dependency Injection vsebnika Service v Laravel, smo zgradili aplikacijo za upravljanje seznama izdelkov. Ta pristop naredi izvorno kodo bolj vzdržljivo in zmanjša odvisnosti med različnimi komponentami aplikacije.
Vadite in prilagodite projekt svojim potrebam, da pridobite globlje razumevanje uporabe Dependency Injection v Laravel.