Eine PHP Standard Recommendation (PSR) ist eine als Empfehlung verfasste Spezifikation, welche durch die PHP Framework Interoperability Group (PHP FIG) veröffentlicht wird. Anders als bei einem Java Specification Request in Java empfiehlt eine PSR ausschließlich die Form der Programmierung mit PHP, nicht jedoch neue Features in PHP. Ziel der PSRs ist es, die Interoperabilität von (Dritt-)Komponenten (dependencies) zu ermöglichen, Quellcode universell lesbar und verständlich zu machen und bewährte Konzepte in der Programmierung zu standardisieren. Zielgruppe der PHP FIG ist primär jedes Mitglied der Gruppe, allerdings finden die PSRs über die FIG hinaus auch in den meisten anderen Projekten Aufmerksamkeit und Anwendung. Daher setzen Framework-Projektgruppen, die auch Mitglied der FIG sind, wie z. B. die der TYPO3-Community, von Symfony oder von Zend (Laminas), die PSR-Spezifikationen in einem selbst gewählten Umfang um. Eine Kompatibilität mit den PSRs und einschlägigen Bibliotheken ist ein sicherer Pfad zur Kompatibilität der eigenen Software mit den Produkten der FIG-Mitglieder.

Nummer Name Beschreibung Status
PSR-0 Autoloading Standard Benennung von Komponenten in Bezug auf Hersteller, Namespace und Klasse sowie zugehörigen Verzeichnisnamen, so dass Komponenten bei Verwendung im PHP-Code bei Bedarf einheitlich automatisch nachgeladen werden können. veraltet; abgelöst durch PSR-4
PSR-1 Basis Coding Standard Allgemeiner Programmierstil, der z. B. die Tags am Anfang eines PHP-Codes, den verwendeten Zeichensatz (UTF-8) sowie die Benennung von Klassen/Methoden regelt; erfordert die Umsetzung von PSR-0. Angenommen
PSR-2 Coding Style Guide Legt z. B. fest an welchen Stellen im Code Zeilenumbrüche bei Klammerausdrücken zu verwenden sind, Einrückungen und Leerzeichen oder die Sichtbarkeit von Eigenschaften und Methoden; erfordert die Umsetzung von PSR-1. veraltet[1]; abgelöst durch PSR-12
PSR-3 Logger Interface Einheitliches Interface für Logmeldungen, zu verwendende Loglevel, Exceptions, das Format von Logmeldungen und zu verwendende Hilfsklassen in diesem Umfeld Angenommen
PSR-4 Improved Autoloading Erweiterung der Autoloading-Spezifikation aus PSR-0 Angenommen
PSR-5 PHPDoc Eine vollständige und formale Definition der PHPDoc-Syntax Entwurf
PSR-6 Caching Interface Interfaces für das Konzept des Caching Angenommen
PSR-7 HTTP Message Interfaces Einheitliches Interface für HTTP-Nachrichten und Umgang mit URIs Angenommen
PSR-8 Huggable Interface Aprilscherz Inaktiv[2]
PSR-9 Security Disclosure Vereinheitlichung von sicherheitsrelevanten Meldungen innerhalb von Projekten Inaktiv[2]
PSR-10 Security Advisories Vereinheitlichung der Kommunikation sicherheitsrelevanter Meldungen mit der Öffentlichkeit Inaktiv[2]
PSR-11 Container Interface Interface für Dependency Injection Containers Angenommen (13.2.2017)[3]
PSR-12 Extended Coding Style Guide Erweitert PSR-1 und PSR-2 um weitere Regeln zum Programmierstil Angenommen (9.8.2019)[4]
PSR-13 Hypermedia Links Spezifikation bzgl. einheitlicher Darstellung von hypermedialen Links. Angenommen (15.11.2016)[5]
PSR-14 Event Manager Einheitliche Schnittstellen für die Implementierung von Events. Angenommen (25.3.2019)[6]
PSR-15 HTTP Handlers Angenommen (22.1.2018)[7]
PSR-16 Simple Cache Vereinfachte Schnittstelle für Caching-Bibliotheken Angenommen (1.1.2017)[8]
PSR-17 HTTP Factories Standard für Fabrikmethoden zur Erstellung von PSR-7-kompatiblen Objekten Angenommen (31.7.2018)[9]
PSR-18 HTTP Client Standard zum Senden und Empfangen von HTTP-Anfragen Angenommen (29.10.2018)[10]
PSR-19 PHPDoc tags Katalog von PHPDoc-Tags Entwurf

Weblinks Bearbeiten

Einzelnachweise Bearbeiten

  1. PSR-12: Extended Coding Style - PHP-FIG. Abgerufen am 16. September 2019.
  2. a b c PHP Standards Recommendations - PHP-FIG. Abgerufen am 16. September 2019.
  3. Google Groups. Abgerufen am 16. September 2019.
  4. Google Groups. Abgerufen am 16. September 2019.
  5. Google Groups. Abgerufen am 16. September 2019.
  6. Google Groups. Abgerufen am 16. September 2019.
  7. Google Groups. Abgerufen am 16. September 2019.
  8. Google Groups. Abgerufen am 16. September 2019.
  9. Google Groups. Abgerufen am 16. September 2019.
  10. PSR-18: HTTP Client,php-fig.org, 1. April 2023