معايير بي إتش بي الموصى بها (وتختصر: PSR) (PHP Standard Recommendation) هي مواصفات للغة البرمجة بي إتش بي وظيفتها توحيد المقاييس للمفاهيم البرمجية المختلفة في بي إتش بي، والهدف الرئيس هو وجود مرجع توافقي تشغيلي بين مكونات ومكتبات أُطر العمل البرمجية ولتقديم أساس تقني عند كتابة مكون برمجي معين لضمان جودة برمجية مُثلى وممارسات أمثل في الاختبارات، وهذه المعايير تقوم عليها «مجموعةالتوافق التشغيلي بين أُطر العمل البرمجية البي تش بي» (إنج: PHP Framework Interop Group، وتختصر PHP-FIG) وهي مجموعة مكونة من عدة مؤسسين لمختلف أطر عمل بي إتش بي.[1]
يتم اقتراح معيار ما «يسمى اختصارا: PSR» من أي عضو ويتم التصويت عليه وفقا لبروتوكول معين معمول به لضمان العمل وفق آلية يحترمها الجميع.[2]
الرمز | الاسم | الوصف | المحرر | المُنسق | الراعي | Status |
---|---|---|---|---|---|---|
PSR-0 | معيار التحميل التلقائي | وصف للمتطلبات الإجبارية التي يجب إتباعها في مكون التحميل التلقائي لضمان تشغيل توافقي.[3] | لا أحد | لا أحد | لا أحد | ملغاة وحل محلها PSR-4[4] |
PSR-1 | معيار البرمجة الأساسية | يشمل العناصر المطلوبة كمعايير برمجية لضمان حالة مُثلى من التوافقية التشغيلية التقنية بين الأكواد المشتركة.[5] | لا أحد | لا أحد | لا أحد | مقبولة |
PSR-2 | دليل الأسلوب البرمجي | يشمل PSR-1 والمقصد منه هو تقليل التعقيد عند القراءة السريعة لكود من مختلف المبرمجين، حيث يشمل عناصر عدة لكيفية كتابة كود بشكل أفضل.[6] | لا أحد | لا أحد | لا أحد | مقبولة |
PSR-3 | واجهة مُسجل البيانات | يصف المعايير لمكون واجهة مسجل بيانات عامة.[7] | Jordi Boggiano | لا أحد | لا أحد | مقبولة |
PSR-4 | معيار التحميل التلقائي | يصف مواصفات كلاسات (class) التحميل التقائي للملفات من مساراتها (مكانها في المجلدات)، حيث يعتبر ذو توافقية تشغيلية عالية ويمكن إستخدامه بالإضافة للمواصفات الأخرى للتحميل التلقائي بالإضافة لـPSR-0. ويصف هذا المعيار أيضاً أين يجب وضع الملفات التي سيتم تحميلها تلقائياً بناءاً على المواصفات.[8] | Paul M. Jones | Phil Sturgeon | Larry Garfield | مقبولة |
PSR-5 | معيار منسق التعليقات البرمجة (PHPDoc) | الغاية الأساسية من هذا المعيار هو توفير تعريف كامل ورسمي لمعيار تنسيق التعليقات PHPDoc. هذا المعيار يختلف عن سابقه phpDocumentor بأنه يقدم دعماً لمميزات جديدة في البي اتش بي ويسد فجوات نقص سابقة.[9] | Mike van Riel | Phil Sturgeon | Donald Gilbert | مسودة |
PSR-6 | واجهة التخزين المؤقت |
الهدف من هذا المعيار هو السماح للمطورين بإنشاء مكتبات تخزين مؤقت (cache) يمكن تضمينها في أطر عمل وأنظمة موجودة بالفعل ودون تغيير في بنيتها.[10] |
Larry Garfield | Paul Dragoonis | Robert Hafner | مقبولة |
PSR-7 | واجهة رسائل بروتوكول نقل النص الفائق | تصف الواجهات العامة لعرض رسائل HTTP كما تم وصفها في المعايير الرسمية RFC 7230 و RFC 7231 والروابط المستخدمه كما في المعيار RFC 3986. [11] |
Matthew Weier O'Phinney | Beau Simensen | Paul M. Jones | مقبولة |
PSR-8 | واجهة قابيلة العناق | تؤسس لطريقة مشتركة للكائنات (مكتبات) لتقدير ومساندة بعضها البعض عن طريق العناق. حيث تسمح للكائنات لدعم بعضها البعض بطريقة مبنية حديثة تسمح لاحقاً بالتعاون بين مكتبات ومشاريع بي إتش بي فيما بينها.[12] | Larry Garfield | Cal Evans | Paul M. Jones | متخلى عنها |
PSR-9 | تبيين المشاكل الأمنية | تعطي مسؤولي مشروع ما طريقة مُعرفة بشكل واضح لتمكين مستخدميهم من إكتشاف المشاكل الأمنية بإستخدام صيغة بناء واضحة لهذه الإنذارات.[13] | Lukas Kahwe Smith | Korvin Szanto | Larry Garfield | متخلى عنها |
PSR-10 | الإنذار بالمشاكل الأمنية | تعطي الباحثين ومسؤولي المشاريع والمستخدمين طريقة واضحة للإنذار عن مشاكل أمنية وثغرات محتملة.[14] | Lukas Kahwe Smith | Larry Garfield | Korvin Szanto | متخلى عنها |
PSR-11 | واجهة الحاوية | تصف الواجهة العامة للحاويات وحقن التوابع (dependency injection) فيها. الهدف هو وجود معيار قياسي لأطر العمل والمكتبات التي تستخدم الحاويات بكيفية جلب وتحميل الكائنات والمتغيرات فيها. [15] |
Matthieu Napoli, David Négrier | Paul M. Jones | Jeremy Lindblom | مقبولة |
PSR-12 | دليل الأسلوب البرمجي الأشمل | تستبدل وتعطي أموراً أشمل لمعيار PSR-2 ، ويتطلب هذا المعيار إحترام المعيار PSR-1.[16] | Michael Cullum | Korvin Szanto | Alexander Makarov | مسودة |
PSR-13 | روابط هيبرميديا | تعطي وصف للواجهات الشائعة لتقديم روابط هيبرميديا.[17] | Larry Garfield | Matthew Weier O’Phinney | Marc Alexander | مقبولة[4] |
PSR-14 | مدير الأحداث | تعطي وصف للواجهات الشاعة لإطلاق والتعامل مع الأحداث. [18] | Larry Garfield | مقبولة[4] | ||
PSR-15 | متحكمات طلبات http (بروتوكول نقل النص التشعبي) | تعطي وصف للواجهات الشائعة لمتحكمات طلبات بروتوكول http وبرمجيات http الوسيطة (middleware) التي تستخدم الرسائل النصية لنتائج بروتوكل http.[19] | Woody Gilk | Matthew Weier O’Phinney | مقبولة[4] | |
PSR-16 | الذاكرة المخبئة (الكاش) البسيطة | تعطي وصف لواجهة بسيطة لكنها قابلة للتوسع لمحرك الكاش وقيم الكاش.[20] | Paul Dragoonis | Jordi Boggiano | Fabien Potencier | مقبولة[4] |
PSR-17 | مصانع (مُولدات) HTTP (بروتوكول نقل النص التشعبي) | تعطي وصف معياري لمولدات (مصانع) كائنات (كلاسات) بروتوكول HTTP متوافقة مع معيار PSR-7 [21] | Woody Gilk | Matthew Weier O’Phinney | مقبولة[4] | |
PSR-18 | عميل HTTP (بروتوكول نقل النص التشعبي) | تعطي وصف لواجهة عامة لإرسال طلبات وتلقي ردود HTTP (بروتوكول نقل النص التشعبي)[22] | Tobias Nyholm | Sara Golemon | مقبولة[4] | |
PSR-19 | وسوم PHPDoc (معيار التعليقات البرمجية ووصفها) | تعطي دليل كامل للوسوم في معيار PHPDoc. [23] | Chuck Burgess | مسودة[4] |
|} موقع مجموعة «PHP-FIG» يملك الوثائق الكاملة للمعايير «PSR» حيث تتبع صيغة المعيار RFC 2119 المكتوب بواسطة «سكوت برادنير» في شهر مارس من عام 1997 في جامعة هارفارد.
المراجع
- "PHP-FIG members list". PHP-FIG official website. مؤرشف من الأصل في 14 يناير 201810 يناير 2016.
- "PHP-FIG voting protocol". PHP-FIG official website. مؤرشف من الأصل في 6 مارس 201910 يناير 2016.
- "PSR-0: Autoloading Standard". PHP-FIG official website. مؤرشف من الأصل في 31 مارس 201910 يناير 2016.
- "PSR status list". PHP-FIG official website. مؤرشف من الأصل في 29 مارس 201910 يناير 2016.
- "PSR-1: Basic Coding Standard". PHP-FIG official website. مؤرشف من الأصل في 31 مارس 201910 يناير 2016.
- "PSR-2: Coding Style Guide". PHP-FIG official website. مؤرشف من الأصل في 17 مايو 201910 يناير 2016.
- "PSR-3: Logger Interface". PHP-FIG official website. مؤرشف من الأصل في 17 مايو 201910 يناير 2016.
- "PSR-4: Autoloading Standard". PHP-FIG official website. مؤرشف من الأصل في 31 مارس 201910 يناير 2016.
- "PSR-5: PHPDoc Standard". PHP Documentor official git repository at Github. مؤرشف من الأصل في 13 ديسمبر 201910 يناير 2016.
- "PSR-6: Caching Interface". PHP-FIG official website. مؤرشف من الأصل في 18 مايو 201910 يناير 2016.
- "PSR-7: HTTP Message Interface". PHP-FIG official website. مؤرشف من الأصل في 8 مايو 201910 يناير 2016.
- "PSR-8: Huggable Interface". PHP-FIG official git repository at Github. مؤرشف من الأصل في 13 ديسمبر 201910 يناير 2016.
- "PSR-9: Security Disclosure". PHP-FIG official git repository at Github. مؤرشف من الأصل في 13 ديسمبر 201910 يناير 2016.
- "PSR-10: Security Advisories". PHP-FIG official git repository at Github. مؤرشف من الأصل في 13 ديسمبر 201910 يناير 2016.
- "PSR-11: Container Interface". PHP-FIG PSR-11 official git repository at Github. مؤرشف من الأصل في 13 ديسمبر 201910 يناير 2016.
- "PSR-12: Extended Coding Style Guide". PHP-FIG official git repository at Github. مؤرشف من الأصل في 31 يناير 201910 يناير 2016.
- "PSR-13: Link definition interfaces - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 29 يوليو 201904 فبراير 2019.
- "PSR-14: Event Dispatcher". PHP-FIG official git repository at Github. مؤرشف من الأصل في 26 أبريل 202004 فبراير 2019.
- "PSR-15: HTTP Server Request Handlers - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 29 يوليو 201904 فبراير 2019.
- "PSR-16: Common Interface for Caching Libraries - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 29 يوليو 201904 فبراير 2019.
- "PSR-17: HTTP Factories - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 18 يوليو 201904 فبراير 2019.
- "PSR-18: HTTP Client - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 18 يوليو 201904 فبراير 2019.
- "PSR-19: PHPDoc tags". PHP-FIG official git repository at Github. مؤرشف من الأصل في 13 ديسمبر 201904 فبراير 2019.