PSR steht für "PHP Standards Recommendation" und ist eine Reihe von standardisierten Empfehlungen für die Entwicklung mit PHP. Diese Standards werden von der PHP-Fig (Framework Interoperability Group) entwickelt und sollen die Interoperabilität zwischen verschiedenen PHP-Frameworks und -Bibliotheken verbessern. Hier sind einige der bekanntesten PSRs:
PSR-1: Basic Coding Standard: Definiert grundlegende Kodierungsstandards wie Dateibenennung, Seitenkodierung und grundlegende Codierungsprinzipien, um die Codebasis konsistenter und lesbarer zu machen.
PSR-2: Coding Style Guide: Baut auf PSR-1 auf und bietet detaillierte Richtlinien für die Formatierung von PHP-Code, einschließlich Einrückungen, Zeilenlängen und die Platzierung von Klammern und Schlüsselwörtern.
PSR-3: Logger Interface: Definiert ein standardisiertes Interface für Logger-Bibliotheken, um die Austauschbarkeit von Logging-Komponenten zu gewährleisten.
PSR-4: Autoloading Standard: Beschreibt einen Autoloading-Standard für PHP-Dateien, der auf Namespaces basiert. Es ersetzt PSR-0 und bietet eine effizientere und flexiblere Möglichkeit, Klassen automatisch zu laden.
PSR-6: Caching Interface: Definiert ein standardisiertes Interface für Caching-Bibliotheken, um die Austauschbarkeit von Caching-Komponenten zu erleichtern.
PSR-7: HTTP Message Interface: Definiert Interfaces für HTTP-Nachrichten (Anfragen und Antworten), die es ermöglichen, HTTP-Nachrichtenobjekte auf eine standardisierte Weise zu erstellen und zu manipulieren. Dies ist besonders nützlich für die Entwicklung von HTTP-Client- und Server-Bibliotheken.
PSR-11: Container Interface: Definiert ein Interface für Dependency Injection Container, um die Austauschbarkeit von Container-Implementierungen zu ermöglichen.
PSR-12: Extended Coding Style Guide: Eine Erweiterung von PSR-2, die zusätzliche Regeln und Richtlinien für den Coding-Style in PHP-Projekten bietet.
Die Einhaltung von PSRs hat mehrere Vorteile:
Ein Beispiel für PSR-4 Autoloading-Konfiguration in composer.json:
{
"autoload": {
"psr-4": {
"MyApp\\": "src/"
}
}
}
Dies bedeutet, dass Klassen im Namespace MyApp im Verzeichnis src/ gesucht werden. Wenn Sie also eine Klasse MyApp\ExampleClass haben, sollte die Datei src/ExampleClass.php enthalten.
PSRs sind ein wesentlicher Bestandteil moderner PHP-Entwicklung und helfen dabei, einen einheitlichen und professionellen Entwicklungsstandard aufrechtzuerhalten.