معيار التحميل التلقائي PSR-4
افهموا كيفية ربط PSR-4 لأجزاء مساحة الاسم بمسارات المجلدات
معيار التحميل التلقائي PSR-4 درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
ما التحميل التلقائي؟
يعني التحميل التلقائي أن PHP تحمّل ملف الصنف تلقائيًا عند استخدام الصنف للمرة الأولى — من دون الحاجة إلى require يدوي.
قبل التحميل التلقائي
من دون التحميل التلقائي، كان كل ملف يبدأ بعشرات الاستدعاءات إلى require_once، مما يجعل الشيفرة هشة وصعبة الصيانة.
قاعدة PSR-4
تربط PSR-4 بادئة مساحة أسماء بمجلد أساسي. عند ربط البادئة App\ بالمجلد src/: يُحمّل App\Models\User من src/Models/User.php.
صيغة الربط
احذف البادئة، واستبدل الشرطات المائلة العكسية المتبقية بفواصل المجلدات، ثم أضف .php.
App\Services\Payment\Stripe → src/Services/Payment/Stripe.php
قسم autoload في composer.json
عرّف روابط PSR-4 في composer.json. شغّل composer dump-autoload بعد إجراء التغييرات.
// composer.json
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}بادئات مساحات أسماء متعددة
يمكن أن يحتوي المشروع على روابط PSR-4 متعددة، وهو أمر مفيد لفصل مساحات أسماء الاختبارات.
// composer.json
{
"autoload": { "psr-4": { "App\\": "src/" } },
"autoload-dev": { "psr-4": { "Tests\\": "tests/" } }
}اسم الصنف = اسم الملف
يجب أن يطابق اسم الصنف اسم الملف تمامًا (مع مراعاة حالة الأحرف في Linux). يجب أن يوجد class UserService في الملف UserService.php.
صنف واحد لكل ملف
تتطلب PSR-4 وجود صنف أو واجهة أو Trait واحد بالضبط في كل ملف. ويؤدي تعريف عدة عناصر إلى تعطيل التحميل التلقائي.
PSR-4 مقارنةً بـ PSR-0
كانت PSR-0 (المهملة) تستخدم الشرطات السفلية في أسماء الأصناف بوصفها فواصل للمجلدات. أما PSR-4 فهي أوضح وتمثل المعيار الحالي.
أداة التحميل التلقائي المُنشأة
بعد تشغيل composer dump-autoload، ينشئ Composer الملف vendor/autoload.php. استدعِه مرة واحدة عند نقطة الدخول.
<?php
require __DIR__.'/vendor/autoload.php';
$user = new App\Models\User(); // autoloads automaticallyخريطة الأصناف الاحتياطية
ينشئ Composer أيضًا خريطة أصناف للملفات التي لا تتبع PSR-4. وهذا مفيد للشيفرة القديمة.
تنظيم عملي للمجلدات
src/\n Models/User.php → App\Models\User\n Http/Controllers/\n UserController.php → App\Http\Controllers\UserController
اختبار سريع
أين تعثر PSR-4 على App\Services\Mailer إذا كانت البادئة App\\ مرتبطة بـ src/؟
الأسئلة الشائعة
هل درس «معيار التحميل التلقائي PSR-4» مجاني؟
نعم — نص درس «معيار التحميل التلقائي PSR-4» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «معيار التحميل التلقائي PSR-4»؟
افهموا كيفية ربط PSR-4 لأجزاء مساحة الاسم بمسارات المجلدات تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «معيار التحميل التلقائي PSR-4»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف مساحات الأسماء واستخدامها
- مساحات الأسماء المتداخلة والأسماء المستعارة
- معيار التحميل التلقائي PSR-4
- تسجيل محمّلات الملفات تلقائيًا