انتقل إلى محتوى الدرس

Constructor and Method Injection حقن الاعتماديات بالباني والدوال

توحيد إجراءات CRUD السبعة عبر متحكمات الموارد Resource Controllers وتخصيص مساراتها وحقن الاعتماديات تلقائياً.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لأن Laravel ينشئ جميع كلاسات المتحكمات عبر حاوي الخدمات، يمكنك طلب أي كلاس خدمي بتحديد نوعه داخل دالة البناء __construct أو مباشرة في معاملات دالة الإجراء. وتجعل ميزة ترقية خصائص الباني في PHP 8.2+ حقن الخدمات المشتركة داخل المتحكم مختصراً وقابلاً للاختبار بسهولة.

  • الحقن عبر الباني (Constructor Injection): حقن الخدمات المشتركة بين عدة دوال داخل دالة __construct.
  • الحقن عبر الدالة (Method Injection): حقن الخدمة المطلوبة في إجراء واحد فقط مباشرة ضمن معاملات تلك الدالة.
  • ترتيب المعاملات (Parameter Ordering): توضع الكلاسات الخدمية المحقونة قبل معاملات الرابط في توقيع الدالة.
PHP
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class OrderController extends Controller {
    public function __construct(private Request $req) {}
    public function show(Request $r, int $id): array {
        return ['id' => $id, 'verb' => $r->method()]; }
}