شرح صفوف ومحتوى الفقرة
لأن 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()]; }
}