PHP-FIG که برگرفته از کلمات PHP Framework Interop Group میباشد سازمانی عامالمنفعه است که هدف اصلیاش استانداردسازی پروژههای نوشتهشده با زبان پیاچپی از طریق ایجاد یکسری اصول و قوانین است.
این گروه توسط جمعی در حدود ۵ نفر از توسعهدهندگان فریمورکهای پیاچپی در سال 2009 شکل گرفت و به مرور زمان افراد بیشتری به هستهٔ اولیهٔ گروه محلق گردید و این در حالی است که فضا برای مشارکت کلیهٔ علاقهمندان باز است.
PHP Standard Recommendation یا به اختصار PSR حاوی دهها استاندارد برای توسعهٔ نرمافزار با زبان پیاچپی است که استاندارد چهارم تحت عنوان PSR-4: Autoloader مرتبط با مقولهٔ Autoloading است که در ادامه قصد داریم آن را مورد بررسی قرار دهیم.
آشنایی با PSR-4: Autoloader
این استاندارد هر آنچه در مورد مقولهٔ Autoloading در پروژههای پیاچپی نیاز است را شامل میگردد که از آن جمله میتوان به نحوهٔ نامگذاری فایلها و ... اشاره کرد. در ادامه، ابتدا دو مثال از این استاندارد خواهیم زد سپس به توضیح شیوهٔ نامگذاری آنها میپردازیم:
FULLY QUALIFIED CLASS NAME NAMESPACE PREFIX BASE DIRECTORY RESULTING FILE PATH Acme\Log\Writer\File_Writer\ Acme\Log\Writer /acme-log-writer/lib/. acme-log-writer/lib/File_Writer.php/. Symfony\Core\Request\ Symfony\Core vendor/Symfony/Core/. vendor/Symfony/Core/Request.php/.
به طور کلی، قانونی که به منظور شیوهٔ نامگذاری کلاسها مورد استفاده قرار میگیرد به صورت زیر است:
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
Vendor Namespace که در بالا در قالب NamespaceName
نمایش داده شده است میباید به نوعی دربرگیرندهٔ سازنده، نام پروژه یا دولوپر کلاس مذکور باشد به طوری که مثلاً در Symfony\Core\Request\
نام Symfony
به سازندهٔ کلاس مذکور اشاره دارد. در ارتباط با SubNamespaceNames
باید گفت که به هر تعداد که بخواهیم میتوانیم زیرشاخه داشته باشیم که در مثال فوقالذکر Core
به عنوان زیرشاخهٔ Symfony
محسوب میگردد و در نهایت به ClassName
میرسیم که در این مثال Request
است.
بر اساس این استاندارد، کلیهٔ کلاسها میباید به پسوند php.
ختم شوند مضاف بر اینکه به صورت PascalCase نوشته شوند؛ به عبارتی، حرف اول نام کلاس به صورت بزرگ نوشته شده سپس چنانچه نام کلاس از چند کلمه تشکیل شده بود، حرف اول سایر کلمات نیز به شکل بزرگ نوشته شوند (به طور مثال، میتوان نام فرضی FileHandler را مد نظر قرار داد که در آن حرف اول کلمات File و Handler به صورت بزرگ نوشته شدهاند.)
حال بر اساس این اصول، در فصل بعد اقدام به تکمیل محتویات فولدر app
خواهیم کرد به گونهای که از طریق فایل autoload.php
بتوانیم به تمامی آنها دسترسی داشته باشیم.