Laravel აპლიკაციის აგება Dependency Injection

ამ სტატიაში ჩვენ განვიხილავთ Laravel აპლიკაციის შექმნას Dependency Injection დამოკიდებულებების მართვისა და უფრო შენარჩუნებული კოდის სტრუქტურის შესაქმნელად. ჩვენ შევქმნით მაღაზიაში პროდუქტების სიის მართვის მარტივ მაგალითს.

ნაბიჯი 1: მომზადება

პირველ რიგში, დარწმუნდით, რომ დააინსტალირეთ Laravel თქვენს კომპიუტერში. Composer ახალი პროექტის შესაქმნელად შეგიძლიათ გამოიყენოთ Laravel:

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

პროექტის შექმნის შემდეგ გადადით პროექტის დირექტორიაში:

cd DependencyInjectionApp

ნაბიჯი 2: შექმნა Service და Interface

დავიწყოთ service პროდუქტების სიის სამართავად შექმნით. შექმენით interface კლასი, რომელიც განახორციელებს ამას interface:

შექმენით ფაილი app/Contracts/ProductServiceInterface.php:

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

შექმენით ფაილი 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: დარეგისტრირდით Service კონტეინერში

გახსენით ფაილი app/Providers/AppServiceProvider.php და დაამატეთ ფუნქციას register:

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

ნაბიჯი 4: გამოყენება Dependency Injection

კონტროლერში შეგიძლიათ გამოიყენოთ Dependency Injection საინექციო ProductService:

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

დასკვნა

Dependency Injection კონტეინერის გამოყენებით ჩვენ შევქმენით აპლიკაცია პროდუქტების სიის სამართავად Service. Laravel ეს მიდგომა ხდის წყაროს კოდს უფრო შენარჩუნებულს და ამცირებს დამოკიდებულებებს აპლიკაციის სხვადასხვა კომპონენტებს შორის.

ივარჯიშეთ და დააკონფიგურირეთ პროექტი თქვენი საჭიროებების შესაბამისად, რათა გაიგოთ მისი გამოყენების უფრო ღრმა Dependency Injection გაგება Laravel.