Ndërtimi i një Laravel aplikacioni me Dependency Injection

Në këtë artikull, ne do të kalojmë në ndërtimin e një Laravel aplikacioni duke përdorur Dependency Injection për të menaxhuar varësitë dhe për të krijuar një strukturë më të mirëmbajtur të kodit burimor. Ne do të krijojmë një shembull të thjeshtë të menaxhimit të një liste produktesh në një dyqan.

Hapi 1: Përgatitja

Së pari, sigurohuni që të keni Laravel instaluar në kompjuterin tuaj. Ju mund të përdorni Composer për të krijuar një Laravel projekt të ri:

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

Pas krijimit të projektit, lundroni në drejtorinë e projektit:

cd DependencyInjectionApp

Hapi 2: Krijoni Service dhe Interface

Le të fillojmë duke krijuar një service për të menaxhuar listën e produkteve. Krijo një interface dhe një klasë që e zbaton këtë interface:

Krijo skedarin app/Contracts/ProductServiceInterface.php:

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

Krijo skedarin 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  
    }  
}  

Hapi 3: Regjistrohuni në Service Kontejner

Hapni skedarin app/Providers/AppServiceProvider.php dhe shtoni në register funksion:

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

Hapi 4: Përdorimi Dependency Injection

Në kontrollues, mund të përdorni Dependency Injection për të injektuar ProductService:

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

konkluzioni

Duke përdorur Dependency Injection dhe Service Kontejnerin në Laravel, ne kemi ndërtuar një aplikacion për të menaxhuar një listë produktesh. Kjo qasje e bën kodin burimor më të mirëmbajtur dhe redukton varësitë midis komponentëve të ndryshëm të aplikacionit.

Praktikoni dhe personalizoni projektin sipas nevojave tuaja për të fituar një kuptim më të thellë të përdorimit Dependency Injection në Laravel.