معايير بي إتش بي الموصى بها

معايير بي إتش بي الموصى بها (وتختصر: 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 في جامعة هارفارد.

المراجع

  1. ^ "PHP-FIG members list". PHP-FIG official website. مؤرشف من الأصل في 2018-01-14. اطلع عليه بتاريخ 2016-01-10.
  2. ^ "PHP-FIG voting protocol". PHP-FIG official website. مؤرشف من الأصل في 2019-03-06. اطلع عليه بتاريخ 2016-01-10.
  3. ^ "PSR-0: Autoloading Standard". PHP-FIG official website. مؤرشف من الأصل في 2019-03-31. اطلع عليه بتاريخ 2016-01-10.
  4. ^ أ ب ت ث ج ح خ د "PSR status list". PHP-FIG official website. مؤرشف من الأصل في 2019-03-29. اطلع عليه بتاريخ 2016-01-10.
  5. ^ "PSR-1: Basic Coding Standard". PHP-FIG official website. مؤرشف من الأصل في 2019-03-31. اطلع عليه بتاريخ 2016-01-10.
  6. ^ "PSR-2: Coding Style Guide". PHP-FIG official website. مؤرشف من الأصل في 2019-05-17. اطلع عليه بتاريخ 2016-01-10.
  7. ^ "PSR-3: Logger Interface". PHP-FIG official website. مؤرشف من الأصل في 2019-05-17. اطلع عليه بتاريخ 2016-01-10.
  8. ^ "PSR-4: Autoloading Standard". PHP-FIG official website. مؤرشف من الأصل في 2019-03-31. اطلع عليه بتاريخ 2016-01-10.
  9. ^ "PSR-5: PHPDoc Standard". PHP Documentor official git repository at Github. مؤرشف من الأصل في 2019-12-13. اطلع عليه بتاريخ 2016-01-10.
  10. ^ "PSR-6: Caching Interface". PHP-FIG official website. مؤرشف من الأصل في 2019-05-18. اطلع عليه بتاريخ 2016-01-10.
  11. ^ "PSR-7: HTTP Message Interface". PHP-FIG official website. مؤرشف من الأصل في 2019-05-08. اطلع عليه بتاريخ 2016-01-10.
  12. ^ "PSR-8: Huggable Interface". PHP-FIG official git repository at Github. مؤرشف من الأصل في 2019-12-13. اطلع عليه بتاريخ 2016-01-10.
  13. ^ "PSR-9: Security Disclosure". PHP-FIG official git repository at Github. مؤرشف من الأصل في 2019-12-13. اطلع عليه بتاريخ 2016-01-10.
  14. ^ "PSR-10: Security Advisories". PHP-FIG official git repository at Github. مؤرشف من الأصل في 2019-12-13. اطلع عليه بتاريخ 2016-01-10.
  15. ^ "PSR-11: Container Interface". PHP-FIG PSR-11 official git repository at Github. مؤرشف من الأصل في 2019-12-13. اطلع عليه بتاريخ 2016-01-10.
  16. ^ "PSR-12: Extended Coding Style Guide". PHP-FIG official git repository at Github. مؤرشف من الأصل في 2019-01-31. اطلع عليه بتاريخ 2016-01-10.
  17. ^ "PSR-13: Link definition interfaces - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 2019-07-29. اطلع عليه بتاريخ 2019-02-04.
  18. ^ "PSR-14: Event Dispatcher". PHP-FIG official git repository at Github. مؤرشف من الأصل في 2020-04-26. اطلع عليه بتاريخ 2019-02-04.
  19. ^ "PSR-15: HTTP Server Request Handlers - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 2019-07-29. اطلع عليه بتاريخ 2019-02-04.
  20. ^ "PSR-16: Common Interface for Caching Libraries - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 2019-07-29. اطلع عليه بتاريخ 2019-02-04.
  21. ^ "PSR-17: HTTP Factories - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 2019-07-18. اطلع عليه بتاريخ 2019-02-04.
  22. ^ "PSR-18: HTTP Client - PHP-FIG". www.php-fig.org. مؤرشف من الأصل في 2019-07-18. اطلع عليه بتاريخ 2019-02-04.
  23. ^ "PSR-19: PHPDoc tags". PHP-FIG official git repository at Github. مؤرشف من الأصل في 2019-12-13. اطلع عليه بتاريخ 2019-02-04.