V tomto článku si projdeme vytvořením Laravel aplikace, která se používá Dependency Injection ke správě závislostí a vytváření lépe udržovatelnou strukturu zdrojového kódu. Vytvoříme jednoduchý příklad správy seznamu produktů na prodejně.
Krok 1: Příprava
Nejprve se ujistěte, že jste Laravel na svém počítači nainstalovali. Composer K vytvoření nového projektu můžete použít Laravel:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
Po vytvoření projektu přejděte do adresáře projektu:
cd DependencyInjectionApp
Krok 2: Vytvořte Service a Interface
Začněme vytvořením service pro správu seznamu produktů. Vytvořte interface třídu a, která toto implementuje interface:
Vytvořte soubor app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Vytvořte soubor 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
}
}
Krok 3: Zaregistrujte se v Service kontejneru
Otevřete soubor app/Providers/AppServiceProvider.php
a přidejte do register
funkce:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
Krok 4: Použití Dependency Injection
V ovladači můžete použít Dependency Injection k injekci ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Závěr
Využitím Dependency Injection a Service kontejneru v Laravel, jsme vytvořili aplikaci pro správu seznamu produktů. Tento přístup umožňuje lépe udržovat zdrojový kód a snižuje závislosti mezi různými komponentami aplikace.
Procvičte si a upravte projekt podle svých potřeb, abyste získali hlubší porozumění použití Dependency Injection v Laravel.