Programos kūrimas Laravel naudojant Dependency Injection

Šiame straipsnyje apžvelgsime, kaip sukurti Laravel programą, skirtą Dependency Injection valdyti priklausomybes ir sukurti labiau prižiūrimą šaltinio kodo struktūrą. Sukursime paprastą prekių sąrašo tvarkymo parduotuvėje pavyzdį.

1 žingsnis: Paruošimas

Pirmiausia įsitikinkite, kad įdiegėte Laravel savo kompiuteryje. Galite naudoti Composer norėdami sukurti naują Laravel projektą:

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

Sukūrę projektą, eikite į projekto katalogą:

cd DependencyInjectionApp

2 veiksmas: sukurkite Service ir Interface

Pradėkime kurdami service produktų sąrašą tvarkyti. Sukurkite klasę interface ir klasę, kuri tai įgyvendina interface:

Sukurkite failą app/Contracts/ProductServiceInterface.php:

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

Sukurkite failą 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 veiksmas: užsiregistruokite Service konteineryje

Atidarykite failą app/Providers/AppServiceProvider.php ir pridėkite prie register funkcijos:

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

4 veiksmas: naudojimas Dependency Injection

Valdiklyje galite naudoti Dependency Injection norėdami suleisti ProductService:

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

Išvada

Naudodami Dependency Injection ir Service konteinerį Laravel sukūrėme taikomąją programą produktų sąrašui tvarkyti. Šis metodas leidžia lengviau prižiūrėti šaltinio kodą ir sumažina skirtingų programos komponentų priklausomybę.

Praktikuokite ir pritaikykite projektą pagal savo poreikius, kad geriau suprastumėte, kaip Dependency Injection naudoti Laravel.