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.