تسجيل محمّلات الملفات تلقائيًا
أعدّوا spl_autoload_register والتحميل التلقائي المعتمد على Composer
تسجيل محمّلات الملفات تلقائيًا درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
spl_autoload_register
تسجّل spl_autoload_register() دالة رد اتصال تستدعيها PHP كلما استُخدم صنف غير معرّف. وتعمل أدوات التحميل التلقائي المتعددة بترتيب تسجيلها.
أداة تحميل تلقائي مخصصة أساسية
أداة تحميل تلقائي بسيطة بأسلوب PSR-4 مكتوبة يدويًا:
<?php
spl_autoload_register(function (string $class): void {
$prefix = 'App\\';
$baseDir = __DIR__.'/src/';
if (!str_starts_with($class, $prefix)) return;
$rel = substr($class, strlen($prefix));
$file = $baseDir.str_replace('\\', '/', $rel).'.php';
if (file_exists($file)) require $file;
});أدوات تحميل تلقائي متعددة
سجّل أداة تحميل تلقائي واحدة لكل بادئة مساحة أسماء، بحيث تتولى كل أداة أصنافها فقط.
<?php
spl_autoload_register(fn($c) => loadFromSrc($c));
spl_autoload_register(fn($c) => loadFromLib($c));ملف autoload.php في Composer
عمليًا، لن تكتب أداة تحميل تلقائي خاصة بك في معظم الحالات. ينشئ Composer أداة تغطي جميع الحزم بالإضافة إلى روابط PSR-4 الخاصة بك.
<?php
require __DIR__.'/vendor/autoload.php';dump-autoload
بعد إضافة أصناف جديدة أو تغيير إعدادات التحميل التلقائي في composer.json، أعد إنشاء أداة التحميل التلقائي باستخدام: composer dump-autoload.
أداة التحميل التلقائي المحسّنة
ينشئ composer dump-autoload --optimize خريطة أصناف ثابتة، مما يلغي عمليات فحص نظام الملفات أثناء التشغيل. ويوصى به في بيئة الإنتاج.
تحميل الملفات تلقائيًا (الدوال العامة)
استخدم المفتاح files في composer.json لملفات المساعدة التي تحتوي على دوال عامة. ويجري تضمينها دائمًا.
// composer.json
{
"autoload": {
"files": ["src/helpers.php"]
}
}ترتيب تنفيذ أدوات التحميل التلقائي
تُستدعى أدوات التحميل التلقائي بترتيب تسجيلها. فإذا تعذّر على الأداة الأولى العثور على الصنف، تعود من دون خطأ وتحاول PHP الأداة التالية.
تصحيح مشكلات التحميل التلقائي
من الأسباب الشائعة للخطأ "Class not found": عدم تشغيل dump-autoload، أو استخدام حالة أحرف خاطئة في اسم الملف أو الصنف، أو عدم تطابق بادئة مساحة الأسماء في composer.json.
أداء PSR-4 مقارنةً بخريطة الأصناف
تنفّذ PSR-4 استدعاءات stat لنظام الملفات. أما خريطة الأصناف فتستخدم بحثًا في خريطة تجزئة، وهو أسرع لكنه يتطلب إعادة الإنشاء عند إضافة كل صنف جديد.
اختبار التحميل التلقائي
تحقّق من أداة التحميل التلقائي:
<?php
require 'vendor/autoload.php';
$obj = new \App\Services\EmailService();
echo get_class($obj); // App\Services\EmailServiceالملخص
تشكّل spl_autoload_register الأساس لجميع عمليات التحميل التلقائي في PHP. ويتولى Composer معظم العمل — ما عليك سوى تشغيل dump-autoload عند إضافة أصناف جديدة.
اختبار سريع
ما الأمر الذي يعيد إنشاء أداة التحميل التلقائي في Composer؟
الأسئلة الشائعة
هل درس «تسجيل محمّلات الملفات تلقائيًا» مجاني؟
نعم — نص درس «تسجيل محمّلات الملفات تلقائيًا» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «تسجيل محمّلات الملفات تلقائيًا»؟
أعدّوا spl_autoload_register والتحميل التلقائي المعتمد على Composer تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تسجيل محمّلات الملفات تلقائيًا»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف مساحات الأسماء واستخدامها
- مساحات الأسماء المتداخلة والأسماء المستعارة
- معيار التحميل التلقائي PSR-4
- تسجيل محمّلات الملفات تلقائيًا