انتقل إلى محتوى الدرس
الدرس 05
دورة إطار العمل Laravel

أوامر Artisan ودورة حياة الطلب في LaravelArtisan Console and Laravel Request Lifecycle

إتقان أوامر سطر الأوامر Artisan CLI وتتبع رحلة طلب HTTP من public/index.php عبر حاوي الخدمات ومزودي الخدمة والواجهات Facades.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

تمثل أداة Artisan واجهة سطر الأوامر المدمجة في جذر كل مشروع Laravel، وتوفر عشرات الأوامر الجاهزة لتوليد الكلاسات وإدارة البيانات وفحص النظام. يعرض الأمر php artisan list قائمة كاملة بالأوامر المتاحة مصنفة حسب وظيفتها، بينما يشرح الأمر php artisan help المعاملات والخيارات الخاصة بأي أمر.

  • استعراض الأوامر (php artisan list): يطبع جميع أوامر النظام المدمجة والمخصصة مرتبة حسب المجموعات.
  • دليل استخدام الأمر (php artisan help): يوضح المعاملات والخيارات المتاحة لأي أمر قبل تشغيله.
  • ملخص حالة النظام (php artisan about): يعرض تقريراً فورياً عن إصدار الإطار والبيئة وحالة الكاش.
مخطط معماري يوضح أوامر Artisan ودورة حياة الطلب في Laravel في إطار العمل Laravel 12
PHP
# List all available Artisan commands in the terminal
php artisan list

# Inspect arguments and flags for a specific command
php artisan help serve

تبدأ رحلة كل طلب HTTP يصل إلى تطبيق Laravel من ملف public/index.php، حيث يسجل النظام وقت البدء ويحمّل ملف التحميل التلقائي للكلاسات التابع لـ Composer. بعد ذلك مباشرة، يستدعي ملف bootstrap/app.php لإنشاء كائن التطبيق المركزي وتمرير الطلب الملتقط إلى دالة المعالجة handleRequest.

  • ثابت وقت البدء (LARAVEL_START Constant): يسجل اللحظة الزمنية لدخول الطلب بدقة الميكروثانية لقياس الأداء.
  • محمل الكلاسات (Composer Autoloader): يجهز نظام التحميل التلقائي لاستدعاء أي كلاس في المشروع عند الحاجة.
  • التقاط الطلب (Request::capture): يحول بيانات الطلب الخام في PHP إلى كائن Request غني بالدوال.
PHP
<?php
// Core lifecycle entry inside public/index.php
use Illuminate\Http\Request;

require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
$app->handleRequest(Request::capture());

يقع في قلب كائن التطبيق حاوي الخدمات Service Container، وهو محرك ذكي يدير إنشاء الكلاسات وحقن الاعتماديات تلقائياً. بدلاً من إنشاء الكائنات المعقدة يدوياً بالكلمة المفتاحية new، يفحص الحاوي الأنواع المحددة في دالة البناء ويوفر الكائنات المطلوبة تلقائياً.

  • الإنشاء التلقائي الذكي (Zero-Config Resolution): يقرأ أنواع المعاملات وينشئ الكائنات المطلوبة دون إعداد مسبق.
  • ربط الواجهات بالكلاسات (Container Bindings): يتيح ربط واجهة برمجية بكلاس تنفيذي محدد بسهولة.
  • الكائنات المشتركة (Singletons): يحتفظ بنسخة واحدة من الكائن الخدمي طوال دورة حياة الطلب.
PHP
<?php
// Binding and resolving a service in the container
app()->singleton('store.currency', function () {
    return 'USD';
});

$currency = app('store.currency');
echo 'Active Currency: ' . $currency;

يمثل مزودو الخدمات Service Providers الآلية المركزية التي تجهز كافة مكونات الإطار مثل قواعد البيانات والتوجيه والتحقق قبل معالجة الطلب. ينفذ Laravel مزودي الخدمات على مرحلتين متتاليتين بدقة: أولاً استدعاء دالة register في جميع المزودين لتسجيل الخدمات في الحاوي، ثم استدعاء دالة boot بعد اكتمال تسجيل كافة الخدمات.

  • مرحلة التسجيل (register Method): تُخصص فقط لربط الكلاسات والخدمات داخل حاوي الخدمات.
  • مرحلة التشغيل (boot Method): تُنفذ بعد اكتمال تسجيل جميع المزودين، ويمكن فيها استخدام أي خدمة بأمان.
  • مزود خدمة التطبيق (AppServiceProvider): يقع في app/Providers ويُستخدم لإضافة إعدادات مشروعك الخاصة.
PHP
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider {
    public function register(): void {}
    public function boot(): void {}
}

توفر الواجهات الساكنة Facades طريقة أنيقة ومختصرة لاستدعاء الكلاسات المسجلة داخل حاوي الخدمات مثل App وConfig وRoute بصيغة تشبه الدوال الساكنة. وفي الحقيقة لا تعد الواجهة الساكنة كلاساً جامداً، بل تعتمد داخلياً على الدالة السحرية __callStatic لجلب الكائن الفعلي من الحاوي وتوجيه الاستدعاء إليه.

  • صياغة مختصرة وواضحة (Clean Syntax): استدعاء الخدمات مباشرة مثل Config::get دون تعقيد الكود.
  • مرتبطة بحاوي الخدمات (Container Backed): تجلب الكائن الحقيقي من الحاوي لحظة الاستدعاء تلقائياً.
  • قابلة للاختبار الكامل (Fully Testable): تدعم المحاكاة المباشرة أثناء كتابة الاختبارات الآلية بسهولة.
PHP
<?php
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\App;

// Facades proxy static calls to container services
$name = Config::get('app.name', 'CloseTag');
$locale = App::getLocale();
echo $name . ' [' . $locale . ']';

يمنحك تتبع دورة حياة الطلب الكاملة من لحظة دخوله حتى خروج الاستجابة قدرة عالية على تشخيص الأخطاء وفهم أين يوضع كل كود برمجي. يوضح الملخص التالي التسلسل الهندسي الدقيق للمراحل التي يمر بها كل طلب ويب داخل Laravel 12.

وجه المقارنة الهندسيالأسلوب اليدوي أو التقليديمعيار Laravel 12 الحديث
إنشاء الكائنات البرمجيةتكرار كتابة new مع تمرير الإعدادات يدوياً في كل ملفإنشاء وحقن تلقائي للاعتماديات عبر حاوي الخدمات المركزي
تهيئة خدمات النظاماستدعاء ملفات تهيئة متفرقة بترتيب يدوي معرض للأخطاءدورة منظمة من مرحلتين register ثم boot داخل مزودي الخدمات
الاستدعاءات الساكنةكلاسات ساكنة تقليدية يصعب اختبارها أو تبديل سلوكهاواجهات Facades مرتبطة بالحاوي وقابلة للمحاكاة في الاختبارات
أتمتة مهام الصيانةكتابة سكريبتات منفصلة لا تتصل بإعدادات التطبيقأوامر Artisan موحدة تعمل داخل نفس حاوي خدمات التطبيق
PHP
<?php
// Tracing lifecycle stages in execution order
$stages = [
    1 => 'public/index.php + Autoloader',
    2 => 'bootstrap/app.php + Service Providers',
    3 => 'Middleware -> Router -> HTTP Response',
];
echo $stages[2];
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس حول «أوامر Artisan ودورة حياة الطلب في Laravel» مفاهيم استكشاف أوامر أداة Artisan CLI، ونقطة دخول الطلب بملف index.php، وأساسيات حاوي الخدمات بالتطبيق وفق معايير Laravel 12 الحديثة.

الخطوة التالية والدرس القادم

انتقل الآن إلى الدرس التالي «التوجيه الأساسي في Laravel وطرق طلبات HTTP» للبناء التراكمي على ما تعلمته.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Request Lifecycle دورة الطلب
إتقان أوامر سطر الأوامر Artisan CLI وتتبع رحلة طلب HTTP من public/index.php عبر حاوي الخدمات ومزودي الخدمة والواجهات Facades.
للمراجعة
02 Exploring Artisan Console CLI استكشاف أوامر أداة Artisan CLI
المفهوم الهندسي والتطبيق العملي المباشر لقسم استكشاف أوامر أداة Artisan CLI في إطار العمل Laravel 12.
للمراجعة
03 Request Entry at public index نقطة دخول الطلب بملف index.php
المفهوم الهندسي والتطبيق العملي المباشر لقسم نقطة دخول الطلب بملف index.php في إطار العمل Laravel 12.
للمراجعة
04 Service Container Fundamentals أساسيات حاوي الخدمات بالتطبيق
المفهوم الهندسي والتطبيق العملي المباشر لقسم أساسيات حاوي الخدمات بالتطبيق في إطار العمل Laravel 12.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 MVC MVC
Model View Controller
النمط المعماري الذي يفصل بين نماذج البيانات Models، وطبقات العرض Views، والمتحكمات Controllers في Laravel.
للمراجعة
02 CLI CLI
Command Line Interface
واجهة سطر الأوامر التي تعمل عبر أداة php artisan لتوليد الملفات وإدارة التطبيق.
للمراجعة
03 HTTP HTTP
Hypertext Transfer Protocol
بروتوكول نقل النص الفائق الذي ينظم طلبات المتصفح واستجابات خادم Laravel.
للمراجعة
04 PSR PSR
PHP Standards Recommendations
المعايير القياسية للغة PHP مثل التحميل التلقائي PSR-4 التي يلتزم بها إطار العمل Laravel.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اكتب ونفّذ المثال البرمجي المشروح في قسم «استكشاف أوامر أداة Artisan CLI» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «نقطة دخول الطلب بملف index.php» وقارن مخرجات التنفيذ.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الهدف الهندسي الأساسي من استكشاف أوامر أداة Artisan CLI في إطار العمل Laravel 12؟

يسهم استكشاف أوامر أداة Artisan CLI في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «نقطة دخول الطلب بملف index.php» على رفع جودة الكود وسهولة اختباره آلياً.

صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.

03

أي آلية في Laravel 12 تتولى إدارة أساسيات حاوي الخدمات بالتطبيق بشكل مباشر ومنظم؟

توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة أساسيات حاوي الخدمات بالتطبيق.

04

لماذا يُعد تطبيق دور مزودي الخدمات بتشغيل النظام مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.

05

في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.

خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.

06

ما المزايا الهندسية التي يحققها تطبيق الواجهات الساكنة المبسطة Facades في Laravel 12؟ (اختر كل ما ينطبق)

يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.

07

يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.

صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.

08

ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في ملخص مراحل دورة حياة الطلب؟

يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.