Dieser Artikel bietet Ihnen eine Einführung in die PHP-Codierungsentwicklungsspezifikationen (mit Beispielen). Ich hoffe, dass er Ihnen als Referenz dienen wird.
In den letzten Tagen habe ich eine Reihe von Java-Entwicklungsspezifikationen „Alibaba Java Development Manual“ gelesen, die von Alibaba Technology veröffentlicht wurden. Es enthält Alibabas interne Java-Entwicklungsspezifikationen und -Standards und ist sehr gut geschrieben. Dieser Satz vereinheitlichter Java-Spezifikationen wird dazu beitragen, den Standardisierungsgrad der Branchencodierung zu verbessern, dem Branchenpersonal dabei zu helfen, die Entwicklungsqualität und -effizienz zu verbessern und die Kosten für die Codewartung erheblich zu senken.
Nachdem ich dies gelesen hatte, suchte ich nach einigen PHP-Entwicklungsspezifikationen und -Standards und erfuhr, dass es sich bei der PSR-Spezifikation um eine Reihe von Entwicklungsstandards handelt, die häufig in der PHP-Branche verwendet werden. Ich bedauere, dass ich so wenig gelernt und die Standardnormen so spät entdeckt habe.
Tatsächlich müssen wir diese Spezifikationen für Anfänger oder Entwickler mit mehrjähriger Erfahrung beherrschen. Wenn wir diese Spezifikationen in der kollaborativen Entwicklung gut umsetzen, können wir in vielen Fällen die Qualität und Effizienz unserer Entwicklung verbessern .
Was ist PSR?
PSR ist die Abkürzung für PHP Standard Recommendations. Die von der PHP FIG-Organisation entwickelte PHP-Spezifikation ist ein praktischer Standard für die PHP-Entwicklung.
PHP FIG hat derzeit für die Einführung von 6 Standardsätzen gestimmt und wurde von den meisten PHP-Frameworks unterstützt und anerkannt.
Unter ihnen sind folgende:
*Hinweis: PSR-0 ist veraltet und PSR-5 befindet sich noch in der Entwurfsphase und wird dies auch tun später hinzugefügt
Hier stellen wir zunächst die grundlegenden PSR-1-Codierungsstandards vor
Übersicht
PHP-Codedateien müssen mit enden. php oder = Tag-Starts; Funktionen, Konstanten usw. oder Für andere Vorgänge, die Nebenwirkungen erzeugen (z. B. das Generieren einer Dateiausgabe und das Ändern von INI-Konfigurationsdateien usw.), können Sie nur eine der beiden Optionen auswählen > Namespaces und Klassen müssen der automatischen Ladespezifikation von PSR entsprechen: Eine von [PSR-4](); ; Alle Buchstaben der Konstanten in der Klasse
müssen groß geschrieben werden und Unterstriche zum Trennen von Wörtern verwendet werden.
Methodennamen müssen der Namenskonvention von camelCase entsprechen beginnend mit Kleinbuchstaben.
2. Datei
2.1. PHP-Tag
PHP-Code muss Oder = ?> kurzes Ausgabe-Tag
darf keine anderen benutzerdefinierten Tags verwenden.
2.2. Zeichenkodierung
PHP-Code muss und kann nur UTF-8-Kodierung ohne BOM verwenden. (Das ist sehr wichtig)
2.3. NebenwirkungenEine PHP-Datei sollte entweder nur neue Deklarationen wie Klassen, Funktionen oder Konstanten usw. definieren Nebenwirkungen erzeugen oder einfach logische Operationen schreiben, die Nebenwirkungen erzeugen, aber nicht beides gleichzeitig.
Der Begriff „Nebenwirkungen“ bezeichnet logische Operationen, die nur durch das Einbinden von Dateien ausgeführt werden, ohne dass Klassen, Funktionen, Konstanten usw. direkt deklariert werden. Zu den „Nebenwirkungen“ gehören unter anderem:
Ausgabe erzeugenDirektes Erfordernis oder Einschließen Externe Dienste verbinden
<?php // 「副作用」:修改 ini 配置 ini_set('error_reporting', E_ALL); // 「副作用」:引入文件 include "file.php"; // 「副作用」:生成输出 echo "<html>\n"; // 声明函数 function foo() { // 函数主体部分 }
<?php // 声明函数 function foo() { // 函数主体部分 } // 条件声明 **不** 属于「副作用」 if (! function_exists('bar')) { function bar() { // 函数主体部分 } }
Code für PHP 5.3 und spätere Versionen muss formale Namespaces verwenden.
Zum Beispiel: 5.2.x 及之前的版本 应该 使用伪命名空间的写法,约定俗成使用顶级的组织名称(vendor name)如 Vendor_ 为类前缀。 4. 类的常量、属性和方法 此处的「类」指代所有的类、接口以及可复用代码块(traits)。 4.1. 常量 类的常量中所有字母都 必须 大写,词间以下划线分隔。 参照以下代码: 4.2. 属性 类的属性命名 可以 遵循: 本规范不做强制要求,但无论遵循哪种命名方式,都 应该 在一定的范围内保持一致。这个范围可以是整个团队、整个包、整个类或整个方法。 方法名称 必须 符合 camelCase() 式的小写开头驼峰命名规范。 【相关推荐:PHP视频教程】 Das obige ist der detaillierte Inhalt vonEinführung in die PHP-Codierungsentwicklungsspezifikationen (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!<?php
// PHP 5.3及以后版本的写法
namespace Vendor\Model;
class Foo
{
}
<?php
// 5.2.x及之前版本的写法
class Vendor_Model_Foo
{
}
<?php
namespace Vendor\Model;
class Foo
{
const VERSION = '1.0';
const DATE_APPROVED = '2012-06-01';
}
4.3. 方法