Handgeschriebene PHP API Framework (1) PSR-Spezifikation
Dieser Artikel bringt Ihnen relevantes Wissen über PHP mit. Es wird auch empfohlen, dass Sie versuchen, die Standards während der Entwicklung zu befolgen du hilfst.
Ursprüngliche Absicht der Schöpfung
- Müde von der Verwendung von CURD?
- Sind die verschiedenen Frameworks etwas überwältigend?
- Haben Sie schon einmal versucht, selbst ein Framework zu entwerfen?
- Ich habe die PHP-Syntax gelernt, aber ich habe kein Projekt, um sie zu üben und eine solide Grundlage zu legen.
Ich hoffe, es kann Ihnen helfen, schnell Ihr eigenes Framework zu erstellen und etwas Hilfe und Inspiration für Ihre Arbeit oder Ihr Studium zu bringen. Was können Sie lernen?
- Lassen Sie mich vor der Entwicklung des Frameworks die Spezifikationen vorstellen, gefolgt von der Framework-Entwicklung. Die meisten Programmiersprachen haben ihre eigenen Codierungsstandards. Als „beste Sprache der Welt“ verfügt PHP sicherlich über eigene Codierungsstandards. Bei dieser Spezifikation handelt es sich um die PHP Standard Recommendation (kurz PSR).
- Natürlich habe ich aus meiner eigenen Arbeit herausgefunden, dass viele PHP-Programmierer, insbesondere Nachwuchsprogrammierer, nicht wissen, dass PHP eine solche Spezifikation hat. Ich halte das für unwissenschaftlich. Was ist PSR?
- Bevor ich PSR vorstelle, muss ich die Organisation vorstellen, die diese Spezifikation formuliert hat ----- PHP-FIG, der vollständige Name lautet PHP Framework Interoperability.
- Organisationsmitglieder formulieren Spezifikationen und implementieren sie in ihren eigenen Projekten. Obwohl es sich nicht um eine offizielle Organisation handelt, vertritt sie auch die meisten PHP-Community-Projekte wie CakePHP, Composer, Drupal, PEAR, Slim, Yii Framework, Zend Framework usw. Und immer mehr Projekte schließen sich diesem Standard an und folgen ihm. Der Zweck des PSR-Projekts besteht darin, durch Diskussionen zwischen Framework-Autoren oder Framework-Vertretern einen Zusammenarbeitsstandard mit den geringsten Einschränkungen zu entwickeln. Jedes Framework folgt einheitlichen Codierungsstandards, um Ingenieuren eine bessere Zusammenarbeit zu ermöglichen.
- Bisher wurden 20 Artikel auf der offiziellen Website aufgeführt. Mit Ausnahme derjenigen, die sich in der Entwurfsphase befinden und verworfen wurden, sind es die folgenden 13 Artikel.
Wir könnten uns auch diese Spezifikationen ansehen:
PSR-1 Grundlegende CodierungsspezifikationenPHP-Codedateien müssen mit
PHP-Code Dateien müssen mit UTF-8-Kodierung ohne BOM beginnen. PHP-Code sollte nur Deklarationen wie Klassen, Funktionen, Konstanten oder andere Vorgänge definieren, die Nebenwirkungen erzeugen (z. B. das Generieren von Dateiausgaben und das Ändern von INI-Konfigurationsdateien usw.). , beide können nur eine auswählenDer Namespace und die Klasse müssen der Autoloading-Spezifikation PSR-4 von PSR entsprechenDie Benennung der Klasse muss der CamelCase-Namenskonvention folgen, beginnend mit einem Großbuchstaben im StudlyCaps-StilAlle Buchstaben der Konstanten in der Klasse müssen großgeschrieben werden, mit Unterstrichen zwischen Wörtern. Durch Trennzeichen getrennt.Methodennamen müssen der Benennungskonvention für Kleinbuchstaben in Kamelbuchstaben im CamelCase-Stil entsprechen Deklarationen, Namespaces, Klassen und Vererbung sowie Kontrollstrukturen usw. veranschaulichen.
Schauen wir uns zunächst eine Demo an:
<?php declare(strict_types=1); namespace Vendor\Package; use Vendor\Package\{ClassA as A, ClassB, ClassC as C}; use Vendor\Package\SomeNamespace\ClassD as D; use function Vendor\Package\{functionA, functionB, functionC}; use const Vendor\Package\{ConstantA, ConstantB, ConstantC}; class Foo extends Bar implements FooInterface { public function sampleFunction(int $a, int $b = null): array { if ($a === $b) { bar(); } elseif ($a > $b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } } final public static function bar() { // method body } }
Der Code muss den Codierungsspezifikationen in [PSR-1] entsprechen. Alle PHP-Dateien müssen Unix LF (Linefeed) als Zeilenabschluss verwenden.
- Alle PHP-Dateien muss mit einer Leerzeile als Ende beginnen; Bei reinen PHP-Codedateien muss das letzte ?> Schluss-Tag weggelassen werdenDie Anzahl der Zeichen pro Zeile sollte sanft bei 80 liegen. Theoretisch darf sie nicht mehr als 120 betragen , aber es darf nicht sein. Es gibt strenge Einschränkungen; es dürfen keine zusätzlichen Leerzeichen nach nicht leeren Zeilen stehen Leerzeilen können das Lesen des Codes erleichtern und helfen, den Code zu blockieren. Es darf nicht mehr als eine Anweisung pro Zeile gebenDer Code muss mit 4 Leerzeichen eingerückt werden und die Tabulatortaste darf nicht verwendet werdenAlle PHP-Schlüsselwörter müssen vollständig in Kleinbuchstaben geschrieben seinDie grundlegenden Spezifikationen der Kontrollstruktur sind wie folgt:
rrree Es gibt viele Codestilspezifikationen, daher werde ich sie hier nicht einzeln erklären. Sie können sie selbst lesen
Automatisches Laden von PSR-4
Über die relevanten Spezifikationen für das automatische Laden Die entsprechende Klasse aus dem Dateipfad ist interoperabel und kann als Ergänzung zu jeder automatischen Ladespezifikation, einschließlich PSR-0, verwendet werden. Darüber hinaus enthält dieser PSR auch die Dateispeicherpfadspezifikation, die der automatisch geladenen Klasse entspricht.- Der Begriff „Klasse“ bezieht sich hier im Allgemeinen auf alle Klassen, Schnittstellen, Merkmale, wiederverwendbaren Codeblöcke und andere ähnliche Strukturen.
- Ein vollständiger Klassenname muss die folgende Struktur haben:
- Der vollständige Klassenname muss
- einen Namensraum der obersten Ebene haben, der als „Anbieter-Namensraum“ bezeichnet wird; einen oder mehrere Unternamensräume haben;
- Der vollständige Klassenname
- muss einen endgültigen Klassennamen haben; Unterstriche in irgendeinem Teil des vollständigen Klassennamens haben
Der vollständige Klassenname kann aus beliebigen Groß- und Kleinbuchstaben bestehen
Bei allen Klassennamen muss die Groß-/Kleinschreibung beachtet werden.
- Wenn Sie die entsprechende Datei basierend auf dem vollständigen Klassennamen laden ...
- Entfernen Sie im vollständigen Klassennamen das erste Namespace-Trennzeichen, einen oder mehrere aufeinanderfolgende Namespaces und Unter-Namespaces davor „Namespace-Präfix“, es muss mindestens einem „Datei-Basisverzeichnis“ entsprechen; als Verzeichnistrennzeichen. Der Klassenname
am Ende von
muss denselben Namen wie die entsprechende Datei mit als Suffix haben.
-
Die Implementierung des Autoloaders darf keine Ausnahme auslösen,
sollte keinen Rückgabewert haben..php
darf keine Fehlermeldung auf irgendeiner Ebene auslösen und BeispielDie folgende Tabelle zeigt die Dateipfade, die dem vollständigen Klassennamen, dem Namespace-Präfix und dem Dateibasisverzeichnis entsprechen und der Spezifikation entsprechen.
Vollständiger Klassenname - Entfernen Sie im vollständigen Klassennamen das erste Namespace-Trennzeichen, einen oder mehrere aufeinanderfolgende Namespaces und Unter-Namespaces davor „Namespace-Präfix“, es muss mindestens einem „Datei-Basisverzeichnis“ entsprechen; als Verzeichnistrennzeichen. Der Klassenname
控制结构关键词后必须有一个空格。 左括号 ( 后一定不能有空格。 右括号 ) 前也一定不能有空格。 右括号 ) 与开始花括号 { 间一定有一个空格。 结构体主体一定要有一次缩进。 结束花括号 } 一定在结构体主体后单独成行。复制代码
Namespace-Präfix
Dateibasisverzeichnis
AcmeLogWriter. File_Writer | AcmeLogWriter | ./acme-log -writer/lib / | |
---|---|---|---|
AuraWebResponseStatus | AuraWeb | /path/to/aura-web/src/ | /path/to/aura-web/src/Response/Status.php |
SymfonyCoreRequest | SymfonyCore | ./vendor/Symfony/Core/ | ./vendor/Symfony/Core/Request.php |
ZendAcl | Zend | /usr/inc. ludes/Z Ende/ | / usr /includes/Zend/Acl.php |
Im Moment stellen wir nur diese drei häufig verwendeten Spezifikationen vor. | Klicken Sie hier, um weitere aktuelle Spezifikationsvorschläge anzuzeigen. |
Empfohlenes Lernen: „
PHP-Video-TutorialDas obige ist der detaillierte Inhalt vonHandgeschriebene PHP API Framework (1) PSR-Spezifikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
