基本コード仕様
この仕様は、PHP コードの共有を確保するために、コードの基本要素、
に関連する標準を策定します。それらの間の高度な技術的相互運用性。
キーワード「しなければならない」、「してはならない」、「必須」、
しなければならない」)、「してはならない」(「してはならない」)、「すべきである」(「すべきである」)、「すべきである」 not" ("SHOULD NOT")、
"recommended" ("RECOMMENDED")、"can" ("MAY" の詳細な説明)、および "OPTIONAL" については、RFC 2119 に記載されています。
1. 概要
-
PHP コード ファイル は または
は<?php
タグで始まる必要があります。 ><?=
PHP コード ファイル でエンコードする必要があります。 PHP コード
を生成するその他の操作 (ファイル出力の生成や .ini 構成ファイルの変更など) では、不带BOM的 UTF-8
はクラス、関数、定数のみを定義する必要があります。 etc 宣言、または<🎜 のいずれか 1 つだけを選択できます。 > 名前空間とクラスは、PSR の自動ロード仕様に準拠している必要があります。PSR-0 または PSR-4 のいずれか
クラスの名前付け从属效应
が必要です。 >follow- 大文字で始まるキャメルケースの命名規則
クラス
内の定数の文字はすべて大文字にする必要があり、単語はアンダースコアで区切られます。 🎜> メソッド名 は、小文字のキャメルケースで始まる
準拠する必要があります。StudlyCaps
の命名規則に2. ファイル
2.1. PHP タグ- PHP コード
は 長いタグまたは を使用する必要があります短い出力タグ。
は他のカスタム タグを使用してはなりません。camelCase
は
である必要があり、 エンコーディングのみを使用できます。 2.3. 依存関係の影響 (副作用) <?php ?>
<?= ?>
PHP ファイルは、依存関係を生成せずに、クラス、関数、定数などの新しい宣言のみを定義する必要があります。
は依存効果を生み出す論理演算のいずれかですが、 が両方を同時に持つことはできません。
関数、定数などを直接宣言せずに、ファイルをインクルードするだけで実行される論理演算を意味します。
「依存する影響」には、出力の生成、直接 または 、外部サービスへの接続、ini 構成の変更、エラーまたは例外のスロー、グローバル変数または静的変数の変更、読み取りが含まれますが、これらに限定されません。またはファイルなどを書き込みます。 不带BOM的UTF-8
以下は例であり、宣言のみを含み、従属効果を生成しないコードです。効果: 3. 名前空間とクラス
名前空間とクラスの命名は PSR-0 に従う必要があります。
仕様によれば、各クラスは独立しています。ファイルであり、名前空間には少なくとも 1 つのレベル、つまり最上位の組織名 (ベンダー名) があります。
クラスの命名は、大文字で始まる require
のキャメルケース命名規則に従う必要があります。 include
は、公式の名前空間を
使用する必要があります。<code class="php"><span class="hljs-preprocessor"><?php<span class="hljs-comment">// 从属效应:修改 ini 配置ini_set(<span class="hljs-string">'error_reporting', E_ALL);<span class="hljs-comment">// 从属效应:引入文件<span class="hljs-keyword">include <span class="hljs-string">"file.php";<span class="hljs-comment">// 从属效应:生成输出<span class="hljs-keyword">echo <span class="hljs-string">"<html>\n";<span class="hljs-comment">// 声明函数<span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">foo<span class="hljs-params">(){ <span class="hljs-comment">// 函数主体部分}</span></span></span></span></span></span></span></code>
例:
<code class="php"><span class="hljs-preprocessor"><?php<span class="hljs-comment">// 声明函数<span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">foo<span class="hljs-params">(){ <span class="hljs-comment">// 函数主体部分}<span class="hljs-comment">// 条件声明**不**属于从属效应<span class="hljs-keyword">if (! function_exists(<span class="hljs-string">'bar')) { <span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">bar<span class="hljs-params">() { <span class="hljs-comment">// 函数主体部分 }}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>
5.2.x およびそれ以前のバージョン
では、疑似名前空間の書き込みを使用する必要があり、慣例としてトップレベルの組織名 (ベンダー) を使用します。
などの名前) はクラスの接頭辞です。4. クラスの定数、プロパティ、メソッド StudlyCaps
4.1.
クラスの定数内の文字はの大文字
にする必要があり、単語はアンダースコアで区切る必要があります。<code class="php"><span class="hljs-preprocessor"><?php<span class="hljs-comment">// PHP 5.3及以后版本的写法<span class="hljs-keyword">namespace <span class="hljs-title">Vendor\<span class="hljs-title">Model;<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Foo{}</span></span></span></span></span></span></span></span></code>次のコードを参照してください:
4.2. 属性 Vendor_
<code class="php"><span class="hljs-preprocessor"><?php<span class="hljs-comment">// 5.2.x及之前版本的写法<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Vendor_Model_Foo{}</span></span></span></span></span></code>) で始まるキャメルケースに従うことができます。小文字 (
) またはアンダースコア区切り形式 (
) で始まることはこの仕様では必須ではありませんが、どの命名方法に従う場合でも、は特定の範囲内で一貫している必要があります。範囲。このスコープは、チーム全体、パッケージ全体、クラス全体、またはメソッド全体にすることができます。
4.3. メソッド
メソッド名 は、 形式の小文字で始まるキャメルケースの命名規則に
準拠する必要があります。
<code class="php"><span class="hljs-preprocessor"><?php<span class="hljs-keyword">namespace <span class="hljs-title">Vendor\<span class="hljs-title">Model;<span class="hljs-class"><span class="hljs-keyword">class <span class="hljs-title">Foo{ <span class="hljs-keyword">const VERSION = <span class="hljs-string">'1.0'; <span class="hljs-keyword">const DATE_APPROVED = <span class="hljs-string">'2012-06-01';}</span></span></span></span></span></span></span></span></span></span></span></code>
$StudlyCaps
原文: PizzaLiu github$camelCase
$under_score