Suche…
Einführung
Die PSR (PHP Standards Recommendation) ist eine Reihe von Empfehlungen, die von der FIG (Framework Interop Group) zusammengestellt wurden.
"Die Idee hinter der Gruppe ist, dass Projektvertreter über die Gemeinsamkeiten unserer Projekte sprechen und Wege finden, wie wir zusammenarbeiten können" - FIG FAQ
PSRs können sich in den folgenden Status befinden: Akzeptiert, Überprüfen, Entwurf oder Veraltet.
PSR-4: Autoloader
PSR-4 ist eine akzeptierte Empfehlung , die den Standard für das automatische Laden von Klassen über Dateinamen beschreibt. Diese Empfehlung wird als Alternative zu dem früheren (und mittlerweile veralteten) PSR-0 empfohlen.
Der vollständig qualifizierte Klassenname sollte der folgenden Anforderung entsprechen:
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
- Es MUSS einen Top-Level-Anbieternamensraum enthalten (zB:
Alphabet
) - Es kann einen oder mehrere Sub-Namespaces enthalten (
Google\AdWord
:Google\AdWord
) - Es MUSS einen
KeywordPlanner
enthalten (KeywordPlanner
:KeywordPlanner
)
Der endgültige Klassenname Alphabet\Google\AdWord\KeywordPlanner
also Alphabet\Google\AdWord\KeywordPlanner
. Der vollständig qualifizierte Klassenname sollte auch in einen aussagekräftigen Dateipfad übersetzt werden. Alphabet\Google\AdWord\KeywordPlanner
befindet sich daher in [path_to_source]/Alphabet/Google/AdWord/KeywordPlanner.php
Ab PHP 5.3.0 kann eine benutzerdefinierte Autoloader-Funktion definiert werden, um Dateien basierend auf dem von Ihnen definierten Pfad und Dateinamenmuster zu laden.
# Edit your php to include something like:
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});
Ersetzen des Speicherorts ('classes /') und der Dateinamenerweiterung ('.class.php') durch Werte, die für Ihre Struktur gelten.
Composer Package Manager unterstützt PSR-4 . Wenn Sie sich an den Standard halten, können Sie Ihre Klassen automatisch mit dem Autoloader des Composer-Herstellers laden.
# Edit the composer.json file to include
{
"autoload": {
"psr-4": {
"Alphabet\\": "[path_to_source]"
}
}
}
Generieren Sie die Autoloader-Datei neu
$ composer dump-autoload
Jetzt können Sie in Ihrem Code Folgendes tun:
<?php
require __DIR__ . '/vendor/autoload.php';
$KeywordPlanner = new Alphabet\Google\AdWord\KeywordPlanner();
PSR-1: Basic Coding Standard
PSR-1 ist eine akzeptierte Empfehlung und beschreibt eine grundlegende Standardempfehlung für das Schreiben von Code.
- Es beschreibt Benennungskonventionen für Klassen, Methoden und Konstanten.
- Es macht die Annahme von PSR-0- oder PSR-4-Empfehlungen zur Voraussetzung.
- Es gibt an, welche PHP-Tags verwendet werden sollen:
<?php
und<?=
Aber nicht<?
. - Sie gibt an, welche Dateikodierung verwendet werden soll (UTF8).
- Es besagt auch, dass Dateien entweder neue Symbole (Klassen, Funktionen, Konstanten usw.) deklarieren und keine anderen Nebenwirkungen verursachen oder Logik mit Nebenwirkungen ausführen und keine Symbole definieren, sondern beides.
PSR-8: Umsteckbare Schnittstelle
PSR-8 ist eine Parodie-PSR ( derzeit in Entwurf ), die von Larry Garfield als Aprilscherz am 1. April 2014 vorgeschlagen wurde.
In dem Entwurf wird beschrieben, wie Sie eine Schnittstelle definieren, um ein Objekt als Huggable
zu definieren.
Hervorheben von der Code-Gliederung:
<?php
namespace Psr\Hug;
/**
* Defines a huggable object.
*
* A huggable object expresses mutual affection with another huggable object.
*/
interface Huggable
{
/**
* Hugs this object.
*
* All hugs are mutual. An object that is hugged MUST in turn hug the other
* object back by calling hug() on the first parameter. All objects MUST
* implement a mechanism to prevent an infinite loop of hugging.
*
* @param Huggable $h
* The object that is hugging this object.
*/
public function hug(Huggable $h);
}