شرح صفوف ومحتوى الفقرة
معيار PSR-4 هو القياس الرسمي لمنظمة PHP-FIG الذي يربط بادئة مجال الأسماء الرئيسي (مثل App\) بمجلد مصدري أساسي (مثل src/) بحيث يطابق كل مجال فرعي مجلداً فرعياً.
- وفق قاعدة الربط
"App\" => "src/"، يجب أن يوجد الصنفApp\Http\HomeControllerفي المسارsrc/Http/HomeController.php. - يجب أن تتطابق حالة الأحرف (الكبيرة والصغيرة) لأسماء المجلدات والملفات مع اسم المجال والصنف تماماً لتجنب فشل التحميل على خوادم Linux الحساسة لحالة الأحرف.
- يحتوي كل ملف PHP وفق PSR-4 على صنف واحد أو واجهة أو سمة أو تعداد واحد يطابق اسم الملف.
تزيل الدالة psr4Path() بادئة مجال الأسماء المسجلة (App\) وتستبدلها بالمجلد src/ ثم تحول الفواصل وتضيف .php.
PHP
<?php
function psr4Path(string $prefix, string $baseDir, string $fqcn): string {
if (!str_starts_with($fqcn, $prefix)) return "";
$relativeClass = substr($fqcn, strlen($prefix));
return $baseDir . str_replace("\\", "/", $relativeClass) . ".php";
}
echo psr4Path("App\\", "src/", "App\\Catalog\\ProductRepository") . "\n";
echo psr4Path("Tests\\", "tests/", "Tests\\Unit\\CartTest") . "\n";