Izdelava Laravel aplikacije z Dependency Injection

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.