Heim > Artikel > Backend-Entwicklung > Grundlegende Spezifikationen des PHP-Codierungsstils
Aufgrund der Flexibilität von PHP achten viele Leute beim Schreiben von Code nicht auf eine gute Codespezifikation, wodurch der ohnehin schon flexible PHP-Code chaotisch aussieht. Tatsächlich ist die PSR-Spezifikation PSR -1 und PSR-2 haben einige Spezifikationen in der PHP-Codierung definiert. Solange wir diese Spezifikationen gut befolgen, können wir auch bei Verwendung einer flexiblen Skriptsprache sehr schönen und übersichtlichen Code schreiben. Werfen wir zunächst einen Blick auf die verabschiedeten PSR-Spezifikationen und erläutern wir dann kurz einige der spezifischen Anforderungen der PSR-1- und PSR-2-Spezifikationen.
PSR bestanden
PSR-1 Basic Coding Specification
( 1) Öffnen und Schließen von Tags
Zunächst muss der PHP-Code mit dem Tag
(2) Nebenwirkungen
PHP-Dateien deklarieren entweder Klassen, Schnittstellen, Funktionen usw. oder führen logische Operationen aus (wie das Lesen und Schreiben von Dateien oder das Senden von Ausgaben an den Browser), aber Sie sollten nicht beides gleichzeitig tun. Beides.
(3) Benennung
Die Benennung der Klasse muss der Namenskonvention für Kamelbuchstaben entsprechen, beginnend mit einem Großbuchstaben. Mit anderen Worten: Klassennamen sollten mit einem Großbuchstaben beginnen. Es gibt keine zwingende Benennung der Eigenschaften, sie sollten jedoch einheitlich sein. Methodennamen müssen der Namenskonvention „camelCase“ entsprechen und mit Kleinbuchstaben beginnen. Alle Buchstaben in Klassenkonstanten müssen großgeschrieben und Wörter durch Unterstriche getrennt werden.
Verwandte Empfehlungen: „PHP-Wissen“
PSR-2 Coding Style Specification
(1) PSR -1 erfordert, dass PHP-Code mit -Tag, sondern mit einer Leerzeile enden sollten.
(2) Nach der Namespace-Deklaration sollte eine Leerzeile eingefügt werden, und nach dem Verwendungsdeklarationsblock sollte auch eine Leerzeile stehen. Machen Sie nicht mehrere Use-Anweisungen in derselben Codezeile.
(3) Der Anfang und das Ende der Klasse
Das Klassenschlüsselwort, der Klassenname und die Schlüsselwörter „extends“ und „implements“ müssen in derselben Zeile stehen. Wenn eine Klasse mehrere Schnittstellen implementiert, können sich die Schnittstellennamen in derselben Zeile der Klassendeklaration befinden oder separate Zeilen belegen. Wenn Sie diese Schnittstellennamen in mehreren Zeilen platzieren möchten, muss der erste Schnittstellenname in einer eigenen Zeile stehen und darf nicht auf das Schlüsselwort „implements“ folgen. Die öffnende geschweifte Klammer ({) einer Klasse sollte in einer eigenen Zeile nach der Funktionsdeklaration geschrieben werden, und die schließende geschweifte Klammer (}) sollte ebenfalls in einer eigenen Zeile nach dem Klassenkörper geschrieben werden. Das heißt, eine Klassendeklaration würde so aussehen:
class EarthGame extends Game implements Playable, Savable { //类体 }
Es ist auch möglich, den Klassennamen in derselben Zeile wie die Klassendeklaration zu platzieren.
class EarthGame extends Game implements Playble, Savable { //类体 }
(4) Attributdeklaration
Jedes Attribut muss einen Zugriffsmodifikator haben (öffentlich, privat oder geschützt). Attribute können nicht mit dem Schlüsselwort var deklariert werden. Die Spezifikation von Attributnamen wird bereits in PSR-1 behandelt: Sie können Unterstriche, CamelCase-Benennungen in Kleinbuchstaben oder CamelCase-Benennungen in Großbuchstaben verwenden, sollten jedoch konsistent bleiben. (Persönlich empfehle ich die Verwendung von Kamelbuchstaben in Kleinbuchstaben für Attribute)
(5) Der Anfang und das Ende der Methode
Alle Methoden müssen Zugriffsmodifikatoren haben (öffentlich, privat oder geschützt). Der Zugriffsmodifikator muss nach „abstract“ oder „final“ und vor „static“ stehen. Methodenparameter mit Standardwerten sollten am Ende der Parameterliste platziert werden.
·Einzeilige Deklaration
Die öffnende geschweifte Klammer ({) der Methode sollte in einer eigenen Zeile nach dem Methodennamen geschrieben werden, und die schließende geschweifte Klammer (} ) sollte auch in die Methode geschrieben werden. Der Textkörper sollte in einer eigenen Zeile stehen (direkt im Anschluss an den Methodencode). Methodenparameterlisten sollten nicht mit einem Leerzeichen beginnen oder enden (d. h. sie sollten auf die sie umgebenden Klammern folgen). Für jeden Parameter sollte nach dem Parameternamen (oder Standardwert) ein Komma und nach dem Komma ein Leerzeichen stehen. Das mag kompliziert klingen, wie unten gezeigt:
final public static function generateTile(int $diamondCount, bool $polluted = false) { //方法体 }
·Mehrzeilige Deklaration
Eine einzeilige Methodendeklaration ist nicht praktikabel, wenn die Methode viele Parameter hat. An dieser Stelle können wir die Parameterliste aufteilen, sodass sich jeder Parameter (einschließlich Typ, Parametervariable, Standardwert und Komma) in einer separaten eingerückten Zeile befindet. In diesem Fall sollte die schließende Klammer in der Zeile nach der Parameterliste platziert werden, ausgerichtet am Anfang der Methodendeklaration. Die öffnende geschweifte Klammer ({) sollte der schließenden Klammer in derselben Zeile folgen, getrennt durch ein Leerzeichen. Der Methodenkörper sollte in einer neuen Zeile beginnen. Auch dies mag kompliziert klingen, aber das folgende Beispiel soll Ihnen helfen, diese Regel zu verstehen.
public function __construct( int $size, string $name, bool $warparound = false, bool $aliens = false ) { //方法体 }
(6) Zeilen und Einrückung
Code sollte mit 4 Leerzeichen anstelle von Tabulatoren eingerückt werden. Wir können die Editoreinstellungen überprüfen und festlegen, dass beim Drücken der Tabulatortaste 4 Leerzeichen anstelle von Tabulatoren verwendet werden. Jede Codezeile sollte nicht länger als 120 Zeichen sein.
(7) Methoden und Funktionsaufrufe
Zwischen dem Methodennamen und den öffnenden Klammern darf kein Leerzeichen stehen. Die Regeln für Parameterlisten in Methodenaufrufen sind dieselben wie für Parameterlisten in Methodendeklarationen. Mit anderen Worten: Bei einzeiligen Aufrufen dürfen weder nach der öffnenden Klammer noch vor der schließenden Klammer Leerzeichen stehen. Auf jeden Parameter sollte ein Komma folgen und vor dem nächsten Parameter sollte ein Leerzeichen stehen. Wenn ein Methodenaufruf mehrere Codezeilen erfordert, sollte jeder Parameter in einer eigenen Zeile stehen und eingerückt sein, und die schließende Klammer sollte in einer eigenen Zeile stehen.
$earthGanme = new EarthGame( 5, 'earth', true, true ); $earthGame::generateTile(5, true);
(8) Prozesskontrolle
流程控制关键字(if、for、while等)后面必须紧跟一个空格。但是,开始圆括号后不能有空格。同样,结束圆括号前不能有空格。因此内容应该紧贴在括号内的。与类和(单行)函数声明相比,流程控制代码的开始花括号应该与结束圆括号在同一行。结束花括号应该自成一行。以下是一个简单的示例。
$title = []; for ($x = 0; $x < $diamondCount; $x++) { if ($polluted) { $title[] = new PollutionDecorator(new DiamondDecorator(new Plains())); } else { $title[] = new DiamondDecorator(new Plains()); } }
注意if和for之后的空格。for和if语句与圆括号在同一行,而且它们的结束圆括号后都有一个空格,然后是流程控制体的开始花括号。
Das obige ist der detaillierte Inhalt vonGrundlegende Spezifikationen des PHP-Codierungsstils. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!