Šiame straipsnyje apžvelgsime, kaip sukurti Laravel programą, skirtą Dependency Injection valdyti priklausomybes ir sukurti labiau prižiūrimą šaltinio kodo struktūrą. Sukursime paprastą prekių sąrašo tvarkymo parduotuvėje pavyzdį.
1 žingsnis: Paruošimas
Pirmiausia įsitikinkite, kad įdiegėte Laravel savo kompiuteryje. Galite naudoti Composer norėdami sukurti naują Laravel projektą:
composer create-project --prefer-dist laravel/laravel DependencyInjectionApp
Sukūrę projektą, eikite į projekto katalogą:
cd DependencyInjectionApp
2 veiksmas: sukurkite Service ir Interface
Pradėkime kurdami service produktų sąrašą tvarkyti. Sukurkite klasę interface ir klasę, kuri tai įgyvendina interface:
Sukurkite failą app/Contracts/ProductServiceInterface.php
:
<?php
namespace App\Contracts;
interface ProductServiceInterface
{
public function getAllProducts();
public function getProductById($id);
}
Sukurkite failą 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 veiksmas: užsiregistruokite Service konteineryje
Atidarykite failą app/Providers/AppServiceProvider.php
ir pridėkite prie register
funkcijos:
use App\Contracts\ProductServiceInterface;
use App\Services\ProductService;
public function register()
{
$this->app->bind(ProductServiceInterface::class, ProductService::class);
}
4 veiksmas: naudojimas Dependency Injection
Valdiklyje galite naudoti Dependency Injection norėdami suleisti ProductService
:
use App\Contracts\ProductServiceInterface;
public function index(ProductServiceInterface $productService)
{
$products = $productService->getAllProducts();
return view('products.index', compact('products'));
}
Išvada
Naudodami Dependency Injection ir Service konteinerį Laravel sukūrėme taikomąją programą produktų sąrašui tvarkyti. Šis metodas leidžia lengviau prižiūrėti šaltinio kodą ir sumažina skirtingų programos komponentų priklausomybę.
Praktikuokite ir pritaikykite projektą pagal savo poreikius, kad geriau suprastumėte, kaip Dependency Injection naudoti Laravel.