ამ სტატიაში ჩვენ განვიხილავთ 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.