وحدات التحكم والإجراءات
أنشئوا وحدات تحكم باستخدام artisan وتعاملوا مع الطلبات في أساليب الإجراءات
وحدات التحكم والإجراءات درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
ما هي وحدة التحكم؟
تجمع وحدة التحكم المنطق المرتبط بمعالجة الطلبات. وبدلًا من استخدام الإغلاقات داخل ملفات المسارات، تُفوّض المعالجة إلى طرق وحدات التحكم (الإجراءات).
إنشاء وحدة تحكم
استخدم Artisan لإنشاء الهيكل الأساسي لوحدة تحكم.
$ php artisan make:controller UserController
$ php artisan make:controller PostController --resourceوحدة تحكم أساسية
ترث وحدة التحكم من Controller، وتحتوي على طرق عامة لكل إجراء من إجراءات المسارات.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
public function index(): \Illuminate\View\View
{
$users = User::all();
return view("users.index", compact("users"));
}
}الوصول إلى الطلب
حدّد نوع Illuminate\Http\Request في طريقة الإجراء، وستحقنه Laravel تلقائيًا.
<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
$name = $request->input("name");
$email = $request->input("email");
User::create(["name" => $name, "email" => $email]);
return redirect()->route("users.index");
}التحقق من صحة النموذج
استخدم $request->validate() للتحقق من صحة المدخلات. عند فشل التحقق، تعيد Laravel التوجيه تلقائيًا إلى الصفحة السابقة مع الأخطاء.
<?php
public function store(Request $request): \Illuminate\Http\RedirectResponse
{
$validated = $request->validate([
"name" => "required|string|max:255",
"email" => "required|email|unique:users",
]);
User::create($validated);
return redirect()->route("users.index");
}طرق وحدة تحكم الموارد
تحتوي وحدة تحكم الموارد على 7 طرق اصطلاحية: index وcreate وstore وshow وedit وupdate وdestroy.
وحدات التحكم ذات الإجراء الواحد
تحتوي وحدات التحكم القابلة للاستدعاء على طريقة واحدة هي __invoke()، وتناسب الإجراءات التي تنفّذ مهمة واحدة تحديدًا.
<?php
class SendWelcomeEmail extends Controller
{
public function __invoke(User $user): void
{
Mail::to($user)->send(new WelcomeMail($user));
}
}
// Route:
Route::post("/users/{user}/welcome", SendWelcomeEmail::class);البرمجيات الوسيطة لوحدة التحكم
طبّق البرمجيات الوسيطة على إجراءات محددة باستخدام طريقة middleware() داخل الباني.
<?php
public function __construct()
{
$this->middleware("auth")->except(["index", "show"]);
}حقن الاعتماديات
حدّد أنواع الخدمات في معاملات طرق الإجراءات، وستحلّها Laravel من حاوية الخدمات.
<?php
public function store(Request $request, Mailer $mailer): JsonResponse
{
// $mailer is auto-injected
}إرجاع الاستجابات
يمكن لوحدات التحكم إرجاع: العروض، وعمليات إعادة التوجيه، واستجابات JSON، وتنزيلات الملفات.
<?php
return view("users.show", compact("user"));
return redirect()->back()->with("status", "Saved!");
return response()->json($user);
return response()->download(storage_path("report.pdf"));مساحات أسماء وحدات التحكم
توجد جميع وحدات التحكم افتراضيًا في App\Http\Controllers. وتنشئ المجلدات الفرعية مساحات أسماء فرعية، مثل: App\Http\Controllers\Admin\UserController.
الحفاظ على نحافة وحدات التحكم
ينبغي أن تفوّض وحدات التحكم منطق الأعمال إلى فئات الخدمات أو الإجراءات. استهدف وحدات تحكم تقتصر على: التحقق من صحة المدخلات، واستدعاء خدمة، وإرجاع استجابة.
الملخص
أنشئ وحدات التحكم باستخدام Artisan. حدّد نوع Request والخدمات لتمكين الحقن التلقائي. استخدم validate() للتحقق من صحة المدخلات. حافظ على نحافة وحدات التحكم، وفوّض المعالجة إلى الخدمات.
تحقّق سريعًا
ما أمر Artisan الذي ينشئ وحدة تحكم للموارد؟
الأسئلة الشائعة
هل درس «وحدات التحكم والإجراءات» مجاني؟
نعم — نص درس «وحدات التحكم والإجراءات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «وحدات التحكم والإجراءات»؟
أنشئوا وحدات تحكم باستخدام artisan وتعاملوا مع الطلبات في أساليب الإجراءات تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «وحدات التحكم والإجراءات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- بنية مشروع Laravel
- تعريف المسارات في Laravel
- وحدات التحكم والإجراءات
- قوالب Blade وطرق العرض