استاندارد های برنامه نویسی PHP یا PSR چیست؟



visibility  
mode_comment   ۱

استاندارد های برنامه نویسی PHP یا PSR چیست؟ اگر با زبان برنامه نویسی PHP کار کرده باشید، متوجه شده اید که نسبت به زبان های برنامه نویسی دیگر زبان بسیار آزادی است. یعنی هیچ استاندارد سخت گیرانه خاصی برای نام گذاری کلاس ها، متغیر ها و... برای آن تعریف نشده است. بنابراین هر برنامه نویسی به تناسب سلایق خود، استایل کدزنی خودش را داشته است. این وضعیت باعث می شد خواندن و حتی فهمیدن کدهای برنامه نویسان دیگر کمی مشکل شود!

البته نمی توان این مسئله را همیشه به صورت یک ایراد دید. چرا که در مواردی تنها برنامه نویسی که روی پروژه کار کرده و خواهد کرد، خود شما هستید. اما به هر حال همیشه روش استاندارد بهترین است! چون ممکن است در آینده، کد ساده شما کم کم بزرگ و بزرگ تر شود! انتخاب با شماست!

PSR چیست

استاندارد های برنامه نویسی پی اچ پی یا PSR چیست؟

در کنفرانس PHP-tek سال 2009 برنامه نویسانی که در حال ارائه پروژه های خود بودند، راهکارهایی برای همکاری روی پروژه های یکدیگر ارائه کردند. جای تعجب نیست اگر بدانید هدف اصلی آن ها، ایجاد استانداردهایی برای ساده کردن همکاری های بین پروژه ای بود. حالا این گروه، تحت نام FIG یا Framework Interop Group (گروه همکاری متقابل بین فریمورکی) در حال فعالیت است. هدف این گروه این است که ترکیب و استفاده از فریمورک ها و کتابخانه های PHP برای برنامه نویسان راحت تر شود. گروه FIG در مورد مجموعه ای از قوانین و استاندارد ها در کدنویسی PHP به توافق رسیدند. این استانداردها PSR نام گرفت.

از نام FIG اینطور به نظر می رسد که فقط پروژه های فریمورکی می توانند مشمول آن شوند. اما برعکس، تمام برنامه نویسان در پروژه های مختلف PHP می توانند به عنوان اعضای رای دهنده در FIG فعالیت کنند. FIG یک اکوسیستم مشترک بین تمام برنامه نویسان PHP (و نه فقط برنامه نویسان پروژه های فریمورک) است. به عنوان مثال سیمفونی و CakePHP هر دو از اعضای رای دهنده FIG هستند. اما به هر حال حتی کامپوزر هم می تواند با وجود فریمورک نبودنش از اعضای رای دهنده باشد!

هدف PSR چیست؟

هدف FIG ایجاد یک زبان و دیالوگ مشترک بین برنامه نویسان PHP، برای دستیابی به راهکارهای همکاری آسان بین آن ها (Interoperability) است. این دیالوگ مشترک، PSR یا پیشنهاداتی برای استاندارد کردن (PHP Standard Recommendations) PHP نام گرفت. در حال حاضر مجموعه استانداردهای PSR از PSR-0 تا PSR-4 تعریف شده است. در ادامه با این PSR ها به طور خلاصه آشنا خواهیم شد.

PSR-0 و PSR-4 برای قوانین Autoloading

گفتیم اولین بار این کنفرانس برای آسان سازی ترکیب کتابخانه ها و فریمورک ها تشکیل شد. بنابراین منطقی است که اولین PSR ایجاد شده، مربوط به استانداردهای پایه ای این ترکیب ها باشد. اولین PSR به تعریف استانداردهای Autoloading کلاس ها در پوشه های برنامه اختصاص دارد.

البته از سال 2014، استانداردهای PSR-0 منقضی شد و به جای آن PSR-4 تعریف شد. در PSR-4 علاوه بر قوانین تعریف شده در PSR-0، استانداردهایی برای نامگذاری و ساختار پوشه بندی برنامه برای Autoloading تنظیم شده است.

PSR-1 و PSR-2 برای استانداردهای کدنویسی

ممکن است نتوانیم بگوییم که PSR-1 و PSR-2 همانند هم هستند. اما حداقل می توانیم بگوییم این دو استاندارد از لحاظ حوزه استفاده، بسیار شبیه هم هستند. PSR-1 در واقع راهنمایی است که به شما برای کدزنی درست و استاندارد کمک می کند. در مستندات PSR-2 نوشته شده است که این PSR، استانداردهای PSR-1 را بسط و گسترش می دهد. استاندارد PSR-2 مجموعه ای از قواعد قالب بندی کدهای پی اچ پی برای افزایش خوانایی آن ها است.

PSR-3 برای ساخت کتابخانه های Logger

آخرین استاندارد PSR که در این مطلب به معرفی مختصر آن می پردازیم، PSR-3 است. PSR سوم به معرفی یک اینترفیس (Interface) استاندارد برای کتابخانه Logger اختصاص دارد. هدف اصلی این استاندارد این است که تمام کتابخانه ها بتوانند از کلاس پیاده سازی شده از اینترفیس Psr/Log/LoggerInterface، آبجکت دریافت کنند. سپس بتوانند با استفاده از این آبجکت با یک روش ساده و مشترک لاگ کنند. در صورتی که با اینترفیس ها آشنایی ندارید می توانید مقاله ما با عنوان "Interface در برنامه نویسی شی گرا چیست؟" را مطالعه کنید.

لاگ ها کاربردهای بسیاری در برنامه نویسی دارند. معمولات توضیحات فنی در مورد ارورهای برنامه در فایل های لاگ ذخیره می شوند. این کار باعث می شود خطایابی و تست برنامه نسبت به روش بدون لاگ بسیار ساده تر شود. همینطور با استفاده از فایل های لاگ شما می توانید رفتارهای کاربرانتان را دنبال (track) کنید. مثلا می توانید با هر کلیک کاربر روی لینک های مختلف سایت یک لاگ شامل آدرس لینک یا محل آن کلیک در صفحه، در فایل لاگ ذخیره کنید. با این روش می توانید UX نرم افزار خود را به مرور زمان ارتقا ببخشید.

جمع بندی

زبان برنامه نویسی PHP هرگز یک استاندارد واحد برای کدنویسی نداشته است. بنابراین هر برنامه نویس پی اچ پی به تناسب سلیقه خود کدنویسی می کرده است. شاید برای پروژه های شخصی با مقیاس کوچک این روش مشکلی ایجاد نکند. اما برای پروژه های بزرگ تر- خصوصا آن هایی که چندین نفر رویشان کار می کنند- این روش می تواند واقعا مشکل آفرین باشد! سلیقه ای نوشتن کدها می تواند باعث تکرار کد و همینطور سخت فهمیده شدن آن شود. یعنی خوانایی یا Readability کد را پایین می آورد.

برای حل این مشکل استاندارد PSR ساخته شد. این استاندارد در واقع یک زبان مشترک و ساده بین برنامه نویسان زبان محبوب پی اچ پی است. در این مطلب با PSR آشنا شده و به طور خلاصه کاربرد PSR های شماره صفر تا چهار را بررسی کردیم. برای آشنایی با هر PSR و یادگیری آن منتظر مقالات بعدی ما در مورد PSR باشید. می توانید برای شروع به ما بگویید رعایت نکردن استانداردهای کدنویسی چه مشکلاتی را در گذشته برای شما به بار آورده است؟

متخصص PHP
اگر دوست داری برنامه نویسی PHP رو حرفه ای یاد بگیری آیا می دانید بیش از ۸۰% وب سایت های موجود در ایران از جمله لیدرهای بازار وب (اسنپ، اسنپ فود، نت برگ، دیجیکالا، الوپیک و ... ) زبان برنامه نویسی PHP را به عنوان زبان اصلی برای پیاده سازی امکانات سمت سرور خود انتخاب کردند! متخصص PHP arrow_back
7Learn Experts
comment دیدگاه کاربران
حامد replyپاسخ

مطلب خیلی مفید و جالبی بود، ممنون.
ولی ای کاش بیشتر می نوشتین، تا جایی که یادمه قوانین PSR بیشتر از 4 تا بودن!
https://www.php-fig.org/psr/

add_circle ارسال دیدگاه

خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :