Einführung in die PHP-Codierungsentwicklungsspezifikationen (mit Beispielen)

不言
Freigeben: 2023-04-05 18:44:01
nach vorne
2699 Leute haben es durchsucht

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:

  • PSR-1-Grundkodierungsspezifikation
  • PSR-2-Kodierungsstilspezifikation
  • PSR-3-Protokollschnittstellenspezifikation
  • PSR-4-Spezifikation für automatisches Laden
  • PSR-6 Cache-Schnittstellenspezifikation
  • PSR-7 HTTP-Nachrichtenschnittstellenspezifikation

*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 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. Nebenwirkungen

Eine 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 erzeugen

Direktes Erfordernis oder Einschließen

Externe Dienste verbinden

  • Ini-Konfiguration ändern
  • Fehler oder Ausnahme auslösen
  • Globale oder statische Variablen ändern
  • Dateien usw. lesen oder schreiben.
    Das Folgende ist ein Gegenbeispiel, ein Dokument mit „Funktionsdeklaration“. " und „Nebenwirkungen“ Code:
  • <?php
    // 「副作用」:修改 ini 配置
    ini_set(&#39;error_reporting&#39;, E_ALL);
    // 「副作用」:引入文件
    include "file.php";
    // 「副作用」:生成输出
    echo "<html>\n";
    // 声明函数
    function foo()
    {
       // 函数主体部分
    }
    Nach dem Login kopieren
  • Das Folgende ist ein Beispiel, ein Code, der nur Deklarationen enthält und keine „Nebenwirkungen“ erzeugt:
    <?php
    // 声明函数
    function foo()
    {
       // 函数主体部分
    }
    // 条件声明 **不** 属于「副作用」
    if (! function_exists(&#39;bar&#39;)) {
       function bar()
       {
           // 函数主体部分
       }
    }
    Nach dem Login kopieren
  • 3 . Namespaces und Klassen
  • Namespace- und Klassenbenennung muss [PSR-4]() folgen.
Gemäß der Spezifikation ist jede Klasse eine unabhängige Datei und der Namespace hat mindestens eine Ebene: den Organisationsnamen der obersten Ebene (Anbietername).

Die Benennung von Klassen muss der Namenskonvention für Kamelbuchstaben von StudlyCaps folgen, beginnend mit einem Großbuchstaben.


Code für PHP 5.3 und spätere Versionen muss formale Namespaces verwenden.

Zum Beispiel:

<?php
// PHP 5.3及以后版本的写法
namespace Vendor\Model;
class Foo
{
}
Nach dem Login kopieren

5.2.x 及之前的版本 应该 使用伪命名空间的写法,约定俗成使用顶级的组织名称(vendor name)如 Vendor_ 为类前缀。

<?php
// 5.2.x及之前版本的写法
class Vendor_Model_Foo
{
}
Nach dem Login kopieren

4. 类的常量、属性和方法

此处的「类」指代所有的类、接口以及可复用代码块(traits)。

4.1. 常量

类的常量中所有字母都 必须 大写,词间以下划线分隔。

参照以下代码:

<?php
namespace Vendor\Model;
class Foo
{
   const VERSION = &#39;1.0&#39;;
   const DATE_APPROVED = &#39;2012-06-01&#39;;
}
Nach dem Login kopieren

4.2. 属性

类的属性命名 可以 遵循:

  • 大写开头的驼峰式 ($StudlyCaps)
  • 小写开头的驼峰式 ($camelCase)
  • 下划线分隔式 ($under_score)

本规范不做强制要求,但无论遵循哪种命名方式,都 应该 在一定的范围内保持一致。这个范围可以是整个团队、整个包、整个类或整个方法。

4.3. 方法

方法名称 必须 符合 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!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage