Heim  >  Artikel  >  Backend-Entwicklung  >  Verstehen Sie die Spezifikation des PHP-Codierungsstils wirklich?

Verstehen Sie die Spezifikation des PHP-Codierungsstils wirklich?

王林
王林nach vorne
2019-08-27 18:01:142011Durchsuche

Aufgrund der Flexibilität von PHP achten viele Leute beim Schreiben von Code nicht auf eine gute Codespezifikation, wodurch der bereits flexible PHP-Code chaotisch aussieht. Tatsächlich waren PSR-1 und PSR-2 in der PSR-Spezifikation definiert. Es gibt einige Spezifikationen in der PHP-Codierung. Solange wir uns an diese Spezifikationen halten, können wir sehr schönen und ordentlichen Code schreiben, auch wenn wir eine flexible Skriptsprache verwenden. Werfen wir zunächst einen Blick auf die bestandenen PSR-Spezifikationen und erläutern wir dann kurz einige spezifische Anforderungen der PSR-1- und PSR-2-Spezifikationen

Bestandene PSR:

Verstehen Sie die Spezifikation des PHP-Codierungsstils wirklich?

PSR-1-Grundcodierungsspezifikation:

1 . Tags öffnen und schließen
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 (z wie das Lesen und Schreiben von Dateien oder das Senden von Ausgaben an den Browser), aber nicht beides.

3. Benennung
Die Benennung von Klassen muss der Kamel-Kasten-Namenskonvention entsprechen, beginnend mit einem Großbuchstaben. Mit anderen Worten: Klassennamen sollten mit einem Großbuchstaben beginnen. Es gibt keine zwingende Benennung der Eigenschaften, diese sollten jedoch einheitlich sein. Methodennamen müssen der Namenskonvention „camelCase“ entsprechen und mit Kleinbuchstaben beginnen. Alle Buchstaben in Klassenkonstanten müssen großgeschrieben werden und Wörter werden durch Unterstriche getrennt.

PSR2-Codierungsstil-Spezifikation:

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 die Schnittstellennamen in derselben Zeile der Klassendeklaration stehen 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
{    
    //类体
}

Sie können den Klassennamen auch in dieselbe Zeile wie die Klassendeklaration einfügen.

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. (Ich persönlich empfehle die Verwendung von 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 ebenfalls eigenständig geschrieben werden Zeile nach dem Methodenkörper (direkt im Anschluss an die Methode nach dem Code). 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ückungen
Der 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、方法与函数调用
方法名称和开始圆括号之间不能有空格。方法调用中的参数列表的规则与方法声明中的参数列表规则相同。换言之,对于单行调用,开始圆括号后或结束圆括号前不能有空格。每个参数之后应该紧跟一个逗号,下一个参数前应该有一个空格。如果需要使用多行代码进行方法调用,那么每个参数应该自成一行并缩进,而且结束圆括号也应该自成一行。

$earthGanme = new EarthGame(   
   5,
   'earth', 
   true,
   true
);
$earthGame::generateTile(5, true);

8、流程控制
流程控制关键字(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());
    }
}

想了解更多相关问题请访问PHP中文网:PHP视频教程

Das obige ist der detaillierte Inhalt vonVerstehen Sie die Spezifikation des PHP-Codierungsstils wirklich?. 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
Vorheriger Artikel:Was ist SQL-Injection?Nächster Artikel:Was ist SQL-Injection?