Tässä artikkelissa käymme läpi Laravel sovelluksen rakentamisen Dependency Injection riippuvuuksien hallintaan ja ylläpidettävämmän lähdekoodirakenteen luomiseen. Luomme yksinkertaisen esimerkin tuoteluettelon hallinnasta myymälässä.
Vaihe 1: Valmistelu
Varmista ensin, että olet Laravel asentanut tietokoneellesi. Voit luoda Composer uuden Laravel projektin:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
Kun olet luonut projektin, siirry projektihakemistoon:
cd DependencyInjectionApp
Vaihe 2: Luo Service ja Interface
Aloitetaan luomalla service tuoteluettelon hallinta. Luo interface ja luokka, joka toteuttaa tämän interface:
Luo tiedosto app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Luo tiedosto 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
}
}
Vaihe 3: Rekisteröidy Service säilöön
Avaa tiedosto app/Providers/AppServiceProvider.php
ja lisää funktioon register
:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
Vaihe 4: Käyttö Dependency Injection
Ohjaimessa voit Dependency Injection ruiskuttaa ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Johtopäätös
Hyödyntämällä Dependency Injection ja Service Säiliötä in Laravel, olemme rakentaneet sovelluksen tuoteluettelon hallintaan. Tämä lähestymistapa tekee lähdekoodista ylläpidettävämmän ja vähentää sovelluksen eri komponenttien välisiä riippuvuuksia.
Harjoittele ja mukauta projektia tarpeidesi mukaan saadaksesi syvemmän käsityksen sovelluksen Dependency Injection käytöstä Laravel.