إنشاء Laravel تطبيق باستخدام Dependency Injection

في هذه المقالة ، سننتقل عبر إنشاء Laravel تطبيق يستخدم Dependency Injection لإدارة التبعيات وإنشاء هيكل كود مصدر أكثر قابلية للصيانة. سننشئ مثالًا بسيطًا لإدارة قائمة المنتجات في المتجر.

الخطوة الأولى: التحضير

أولاً ، تأكد من أنك قمت 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.