Jump to content

英文维基 | 中文维基 | 日文维基 | 草榴社区

PHP Standard Recommendation

From Wikipedia, the free encyclopedia

The PHP Standard Recommendation (PSR) is a PHP specification published by the PHP Framework Interop Group. Similar to Java Specification Request for Java, it serves the standardization of programming concepts in PHP. The aim is to enable interoperability of components and to provide a common technical basis for implementation of proven concepts for optimal programming and testing practices. The PHP-FIG is formed by several PHP frameworks founders.[1]

Each PSR is suggested by members and voted according to an established protocol to act consistently and in line with their agreed upon processes.[2]

Number Name Description Editor Coordinator Sponsor Status
PSR-0 Autoloading Standard It describes the mandatory requirements that must be adhered to for autoloader interoperability.[3] N/A N/A N/A Deprecated and substituted by PSR-4[4]
PSR-1 Basic Coding Standard It comprises what should be considered the standard coding elements that are required to ensure a high level of technical interoperability between shared PHP code.[5] N/A N/A N/A Accepted[4]
PSR-2 Coding Style Guide It considers PSR-1 and it is intended to reduce cognitive friction when scanning code from different authors. It does so by enumerating a shared set of rules and expectations about how to format PHP code.[6] N/A N/A N/A Deprecated [7][4][8]
PSR-3 Logger Interface It describes a common interface for logging libraries.[9] Jordi Boggiano N/A N/A Accepted[4]
PSR-4 Autoloading Standard It describes a specification for autoloading classes from file paths. It is fully interoperable, and can be used in addition to any other autoloading specification, including PSR-0. This PSR also describes where to place files that will be auto loaded according to the specification.[10] Paul M. Jones Phil Sturgeon Larry Garfield Accepted[4]
PSR-5 PHPDoc Standard The main purpose of this PSR is to provide a complete and formal definition of the PHPDoc standard. This PSR deviates from its predecessor, the de facto PHPDoc Standard associated with phpDocumentor 1.x, to provide support for newer features in the PHP language and to address some of the shortcomings of its predecessor.[11] Mike van Riel Phil Sturgeon Donald Gilbert Draft[4]
PSR-6 Caching Interface The goal of this PSR is to allow developers to create cache-aware libraries that can be integrated into existing frameworks and systems without the need for custom development.[12] Larry Garfield Paul Dragoonis Robert Hafner Accepted[4]
PSR-7 HTTP Message Interface It describes common interfaces for representing HTTP messages as described in RFC 7230 and RFC 7231, and URIs for use with HTTP messages as described in RFC 3986.[13] Matthew Weier O'Phinney Beau Simensen Paul M. Jones Accepted[4]
PSR-8 Huggable Interface It establishes a common way for objects to express mutual appreciation and support by hugging. This allows objects to support each other in a constructive fashion, furthering cooperation between different PHP projects.[14] Larry Garfield Cal Evans Paul M. Jones Abandoned[4]
PSR-9 Security Disclosure It gives project leads a clearly defined approach to enabling end users to discover security disclosures using a clearly defined structured format for these disclosures.[15] Lukas Kahwe Smith Korvin Szanto Larry Garfield Abandoned[4]
PSR-10 Security Advisories It gives researchers, project leads, upstream project leads and end users a defined and structured process for disclosing security vulnerabilities.[16] Lukas Kahwe Smith Larry Garfield Korvin Szanto Abandoned[4]
PSR-11 Container Interface It describes a common interface for dependency injection containers. The goal is to standardize how frameworks and libraries make use of a container to obtain objects and parameters (called entries in the rest of this document).[17] Matthieu Napoli, David Négrier Paul M. Jones Jeremy Lindblom Accepted[4]
PSR-12 Extended Coding Style Guide It extends, expands and replaces PSR-2, the coding style guide and requires adherence to PSR-1, the basic coding standard.[18] Michael Cullum Korvin Szanto Alexander Makarov Accepted[4]
PSR-13 Hypermedia Links It describes common interfaces for representing a hypermedia link.[19] Larry Garfield Matthew Weier O’Phinney Marc Alexander Accepted[4]
PSR-14 Event Manager It describes common interfaces for dispatching and handling events.[20] Larry Garfield Accepted[4]
PSR-15 HTTP Server Request Handlers It describes common interfaces for HTTP server request handlers and HTTP server middleware components that use HTTP messages.[21] Woody Gilk Matthew Weier O’Phinney Accepted[4]
PSR-16 Simple Cache It describes a simple yet extensible interface for a cache item and a cache driver.[22] Paul Dragoonis Jordi Boggiano Fabien Potencier Accepted[4]
PSR-17 HTTP Factories It describes a common standard for factories that create PSR-7 compliant HTTP objects.[23] Woody Gilk Matthew Weier O’Phinney Accepted[4]
PSR-18 HTTP Client It describes a common interface for sending HTTP requests and receiving HTTP responses.[24] Tobias Nyholm Sara Golemon Accepted[4]
PSR-19 PHPDoc tags It provides a complete catalog of tags in the PHPDoc standard.[25] Chuck Burgess Draft[4]
PSR-20 Clock It provides a standard way of accessing the clock - allowing interopability during testing, when testing behavior that has timing based side effects.[26] Chris Seufert Chuck Burgess Accepted[4]
PSR-21 Internationalization TBD.[27] Navarr Barnier Draft[4]
PSR-22 Application Tracing TBD.[28] Adam Allport Draft[4]


The PHP-FIG official website has the PSR documentation that follows the RFC 2119 written by Scott Bradner in March 1997 at Harvard University.

References

[edit]
  1. ^ "PHP-FIG members list". PHP-FIG official website. hej. Retrieved 10 January 2016.
  2. ^ "Voting Protocol". PHP Framework Interop Group. Retrieved 10 January 2016.
  3. ^ "PSR-0: Autoloading Standard". PHP-FIG official website. Retrieved 10 January 2016.
  4. ^ a b c d e f g h i j k l m n o p q r s t u v w "PSR status list". PHP-FIG official website. Retrieved 10 January 2016.
  5. ^ "PSR-1: Basic Coding Standard". PHP-FIG official website. Retrieved 10 January 2016.
  6. ^ "PSR-2: Coding Style Guide". PHP-FIG official website. Retrieved 10 January 2016.
  7. ^ "PHP Standards Recommendations - PHP-FIG". www.php-fig.org. Retrieved 2020-02-14.
  8. ^ "PHP Standards Recommendations - PHP-FIG". www.php-fig.org. Retrieved 2020-05-09.
  9. ^ "PSR-3: Logger Interface". PHP-FIG official website. Retrieved 10 January 2016.
  10. ^ "PSR-4: Autoloading Standard". PHP-FIG official website. Retrieved 10 January 2016.
  11. ^ "PSR-5: PHPDoc Standard". PHP Documentor official git repository at Github. Retrieved 10 January 2016.
  12. ^ "PSR-6: Caching Interface". PHP-FIG official website. Retrieved 10 January 2016.
  13. ^ "PSR-7: HTTP Message Interface". PHP-FIG official website. Retrieved 10 January 2016.
  14. ^ "PSR-8: Huggable Interface". PHP-FIG official git repository at Github. Retrieved 10 January 2016.
  15. ^ "PSR-9: Security Disclosure". PHP-FIG official git repository at Github. Retrieved 10 January 2016.
  16. ^ "PSR-10: Security Advisories". PHP-FIG official git repository at Github. Retrieved 10 January 2016.
  17. ^ "PSR-11: Container Interface". PHP-FIG PSR-11 official git repository at Github. Retrieved 10 January 2016.
  18. ^ "PSR-12: Extended Coding Style Guide - PHP-FIG". www.php-fig.org. Retrieved 2020-06-04.
  19. ^ "PSR-13: Link definition interfaces - PHP-FIG". www.php-fig.org. Retrieved 2019-02-04.
  20. ^ "PSR-14: Event Dispatcher". PHP-FIG official git repository at Github. Retrieved 4 February 2019.
  21. ^ "PSR-15: HTTP Server Request Handlers - PHP-FIG". www.php-fig.org. Retrieved 2019-02-04.
  22. ^ "PSR-16: Common Interface for Caching Libraries - PHP-FIG". www.php-fig.org. Retrieved 2019-02-04.
  23. ^ "PSR-17: HTTP Factories - PHP-FIG". www.php-fig.org. Retrieved 2019-02-04.
  24. ^ "PSR-18: HTTP Client - PHP-FIG". www.php-fig.org. Retrieved 2019-02-04.
  25. ^ "PSR-19: PHPDoc tags". PHP-FIG official git repository at Github. Retrieved 4 February 2019.
  26. ^ "PSR-20: Clock - PHP-FIG". www.php-fig.org. Retrieved 2024-01-14.
  27. ^ "PSR-21: Internationalization". PHP-FIG official git repository at Github. Retrieved 14 January 2024.
  28. ^ "PSR-22: Application Tracing". PHP-FIG official git repository at Github. Retrieved 14 January 2024.
[edit]