W tym artykule przeprowadzimy proces tworzenia Laravel aplikacji przy użyciu Dependency Injection zarządzania zależnościami i tworzenia łatwiejszej w utrzymaniu struktury kodu źródłowego. Stworzymy prosty przykład zarządzania listą produktów w sklepie.
Krok 1: Przygotowanie
Po pierwsze, upewnij się, że zainstalowałeś Laravel na swoim komputerze. Możesz użyć Composer do stworzenia nowego Laravel projektu:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
Po utworzeniu projektu przejdź do katalogu projektu:
cd DependencyInjectionApp
Krok 2: Utwórz Service i Interface
Zacznijmy od utworzenia narzędzia service do zarządzania listą produktów. Utwórz interface i klasę, która to implementuje interface:
Utwórz plik app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Utwórz plik 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: Zarejestruj się w Service kontenerze
Otwórz plik app/Providers/AppServiceProvider.php
i dodaj do register
funkcji:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
Krok 4: Używanie Dependency Injection
W kontrolerze możesz użyć Dependency Injection do wstrzyknięcia ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Wniosek
Wykorzystując Dependency Injection i Service Kontener w Laravel, zbudowaliśmy aplikację do zarządzania listą produktów. Takie podejście sprawia, że kod źródłowy jest łatwiejszy w utrzymaniu i zmniejsza zależności między różnymi komponentami aplikacji.
Przećwicz i dostosuj projekt do swoich potrzeb, aby uzyskać głębsze zrozumienie używania Dependency Injection w Laravel.