0Pricing
PHP Academy · درس

برامج Composer النصية والتحميل التلقائي

عرّفوا البرامج النصية في composer.json ومكّنوا التحميل التلقائي للفئات

برامج Composer النصية والتحميل التلقائي درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

البرامج النصية في composer.json

يحدد المفتاح scripts أوامر shell مسماة تُشغَّل عبر composer run-script NAME أو ببساطة عبر composer NAME.

تعريف برنامج نصي

البرامج النصية عبارة عن مصفوفات من أوامر shell أو استدعاءات لأساليب PHP الساكنة.

// composer.json
{
  "scripts": {
    "test": "vendor/bin/phpunit",
    "lint": "vendor/bin/phpcs src/",
    "cs-fix": "vendor/bin/phpcbf src/"
  }
}

تشغيل البرامج النصية

نفّذ برنامجًا نصيًا باستخدام الصيغة المختصرة composer متبوعًا بالاسم.

$ composer test
$ composer run-script lint

البرامج النصية المستندة إلى الأحداث

يطلق Composer أحداث دورة حياة يمكنك ربطها به، مثل: post-install-cmd وpost-update-cmd وpost-autoload-dump.

// composer.json
{
  "scripts": {
    "post-install-cmd": ["php artisan migrate --force"]
  }
}

تسلسل البرامج النصية

أشر إلى برنامج نصي آخر باستخدام @script-name داخل مصفوفة البرامج النصية.

// composer.json
{
  "scripts": {
    "build": ["@lint", "@test"]
  }
}

أنواع مفاتيح التحميل التلقائي

يدعم القسم autoload ثلاثة أنواع: psr-4 وclassmap وfiles.

// composer.json
{
  "autoload": {
    "psr-4":    { "App\\": "src/" },
    "classmap": ["database/"],
    "files":    ["src/helpers.php"]
  }
}

autoload-dev

يضيف autoload-dev قواعد تحميل تلقائي للبيئات المحلية وبيئات الاختبار فقط، مثل أصناف الأساس الخاصة بالاختبارات التي لا ينبغي أن تُضمَّن مع الحزمة.

تحسين أداة التحميل التلقائي

شغّل composer dump-autoload --optimize أو -o لإنشاء خريطة أصناف ثابتة تسرّع تحليل الأصناف. وهذا مثالي لبيئة الإنتاج.

--classmap-authoritative

يبحث composer dump-autoload -a في خريطة الأصناف فقط، ولا يعود مطلقًا إلى فحص نظام الملفات باستخدام PSR-4. استخدمه عندما تكون جميع الأصناف مُدرجة في الخريطة.

ذاكرة APCu المؤقتة

يستخدم composer dump-autoload --apcu APCu لتخزين تعيينات الأصناف إلى الملفات مؤقتًا في الذاكرة بين الطلبات، مما يوفر تسارعًا ملحوظًا على الخوادم المزدحمة.

إعداد عملي للبرامج النصية في CI

البرامج النصية المعتادة في المشروع هي: test للاختبار، وcs لمعايير كتابة التعليمات البرمجية، وanalyse للتحليل باستخدام PHPStan أو Psalm، وbuild لتسلسل البرامج الثلاثة.

الخلاصة

تؤتمت برامج Composer المهام المتكررة. ويربط قسم التحميل التلقائي مساحات الأسماء بالملفات. استخدم dump-autoload -o في الإنتاج لتحقيق أقصى أداء.

تحقق سريع

ما الحدث الذي يُطلَق بعد اكتمال "composer install"؟

الأسئلة الشائعة

هل درس «برامج Composer النصية والتحميل التلقائي» مجاني؟

نعم — نص درس «برامج Composer النصية والتحميل التلقائي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «برامج Composer النصية والتحميل التلقائي»؟

عرّفوا البرامج النصية في composer.json ومكّنوا التحميل التلقائي للفئات تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «برامج Composer النصية والتحميل التلقائي»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تثبيت Composer وتهيئته
  2. استلزام الحزم وتحديثها
  3. فهم composer.lock
  4. برامج Composer النصية والتحميل التلقائي
← العودة إلى PHP Academy