Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Spezifikation des PHP-Codierungsstils

Detaillierte Einführung in die Spezifikation des PHP-Codierungsstils

angryTom
angryTomnach vorne
2019-08-09 16:44:323063Durchsuche

Detaillierte Einführung in die Spezifikation 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 基础编码规范 关于PHP标签和基本命名约定等基础的规范
2 编码风格规范 关于大括号的位置和参数列表等编码格式的规定
3 日志接口规范 关于日志级别以及记录日志的行为的规定
4 自动加载规范 关于类和命名空间的命名约定,以及它们与文件系统间映射的规定
6 缓存接口规范 关于缓存管理的规定,其中包括数据类型、缓存项的生存周期、错误处理等
7 HTTP消息接口规范 关于HTTP请求和响应的约定

PSR-1 Basic Coding Standard

1. Tags öffnen und schließen

Zunächst einmal die PHP-Code muss mit einem 013428b5364207ea6e4304d0391f465e-Tag, sondern mit einer Leerzeile enden sollten.

2. Nach der Namespace-Deklaration sollte eine Leerzeile eingefügt werden, und nach dem use-Anweisungsblock 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 sowie 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, die Klassendeklaration sieht so aus:

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 empfohlen, für Attribute Kleinbuchstaben zu verwenden)

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 ebenfalls in ihrer eigenen Zeile geschrieben werden eigene Zeile nach dem Methodenkörper (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
Wenn die Methode viele Parameter hat, ist eine einzeilige Methodendeklaration nicht praktikabel. 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. Prozesssteuerung

Den Schlüsselwörtern zur Prozesssteuerung (if, for, while usw.) muss ein Leerzeichen folgen. Nach der öffnenden Klammer darf jedoch kein Leerzeichen stehen. Ebenso dürfen vor der schließenden Klammer keine Leerzeichen stehen. Daher sollte der Inhalt genau in die Klammern passen. Im Gegensatz zu Klassen- und (einzeiligen) Funktionsdeklarationen sollte die öffnende geschweifte Klammer des Flusskontrollcodes in derselben Zeile wie die schließende Klammer stehen. Die schließende geschweifte Klammer sollte in einer eigenen Zeile stehen. Hier ist ein einfaches Beispiel.

$title = [];
for ($x = 0; $x < $diamondCount; $x++) { 
   if ($polluted) {
        $title[] = new PollutionDecorator(new DiamondDecorator(new Plains()));
    } else {
        $title[] = new DiamondDecorator(new Plains());
    }
}

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Spezifikation des PHP-Codierungsstils. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen