bg_image
header

PSR-3

PSR-3 ist eine Empfehlung der PHP-FIG (PHP Framework Interoperability Group), die ein standardisiertes Interface für Logging-Bibliotheken in PHP-Anwendungen festlegt. Das Ziel ist es, Entwicklern eine einheitliche und flexible Schnittstelle für das Logging bereitzustellen, die unabhängig von der verwendeten Bibliothek funktioniert. Dadurch können Log-Bibliotheken leicht ersetzt oder geändert werden, ohne dass bestehender Code angepasst werden muss.

Wichtige Punkte von PSR-3:

  1. Standardisiertes Logger-Interface: PSR-3 definiert das Interface Psr\Log\LoggerInterface mit verschiedenen Methoden für unterschiedliche Log-Level wie emergency(), alert(), critical(), error(), warning(), notice(), info() und debug().

  2. Log-Level: Die acht vordefinierten Log-Level (z. B. emergency, alert, error) basieren auf dem weit verbreiteten Syslog-Protokoll RFC 5424, was die Kompatibilität mit vielen Logging-Systemen sicherstellt.

  3. Nachrichteninterpolation: PSR-3 erlaubt es, Platzhalter in Log-Nachrichten (z. B. {platzhalter}) durch tatsächliche Werte zu ersetzen. Beispiel:
    $logger->error("Benutzer {username} nicht gefunden", ['username' => 'johndoe']);
    Dadurch werden Log-Nachrichten konsistent und lesbar formatiert, ohne dass aufwendige String-Manipulation nötig ist.

  4. Flexible Implementierung: Jede Logging-Bibliothek, die LoggerInterface implementiert, kann in PSR-3-kompatiblem Code verwendet werden, wie etwa die weit verbreitete Bibliothek Monolog.

  5. Dynamische Log-Level: Mit der log()-Methode kann man Nachrichten auch dynamisch auf jedem gewünschten Log-Level protokollieren, indem der Level als Parameter übergeben wird.

Beispiel zur Anwendung:

Hier ein Beispiel, wie ein PSR-3-konformer Logger verwendet wird:

use Psr\Log\LoggerInterface;

class UserService
{
    private $logger;

    public function __construct(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }

    public function findUser($username)
    {
        $this->logger->info("Suche nach Benutzer {username}", ['username' => $username]);
        // ...
    }
}

Vorteile von PSR-3:

  • Interoperabilität: Das Standard-Interface ermöglicht einen unkomplizierten Wechsel zwischen verschiedenen Logging-Bibliotheken.
  • Konsistenz: PSR-3 sorgt für eine einheitliche Struktur beim Logging, was die Lesbarkeit und Wartbarkeit des Codes vereinfacht.
  • Anpassungsfähigkeit: PSR-3 unterstützt komplexe Anwendungen, die möglicherweise verschiedene Logging-Level und Speicherorte für Logs benötigen.

Mehr Informationen und Details finden sich auf der offiziellen PHP-FIG-Seite zur PSR-3-Spezifikation.

 

 


Erstellt vor 10 Monaten
Anwendungen Interface Methode PHP PHP 7 PHP Standards Recommendation - PSR PSR-3 Prinzipien Programmierung Quellcode Software Strategien Webentwicklung

Hinterlasse einen Kommentar Antworten Abbrechen
* Erforderliches Feld