ホームページ >バックエンド開発 >PHPチュートリアル >PHP PSR-1 基本コード仕様書(中国語版)

PHP PSR-1 基本コード仕様書(中国語版)

WBOY
WBOYオリジナル
2016-06-13 12:28:24877ブラウズ

PHP PSR-1 基本コード仕様 (中国語版)

基本コード仕様

この仕様は、PHP コードの共有を確保するために、コードの基本要素、
に関連する標準を策定します。それらの間の高度な技術的相互運用性。

キーワード「しなければならない」、「してはならない」、「必須」、
しなければならない」)、「してはならない」(「してはならない」)、「すべきである」(「すべきである」)、「すべきである」 not" ("SHOULD NOT")、
"recommended" ("RECOMMENDED")、"can" ("MAY" の詳細な説明)、および "OPTIONAL" については、RFC 2119 に記載されています。

1. 概要

  • PHP コード ファイル または <?php タグで始まる必要があります。 ><?=PHP コード ファイル

  • でエンコードする必要があります。
  • PHP コード 不带BOM的 UTF-8 はクラス、関数、定数のみを定義する必要があります。 etc 宣言、または

    を生成するその他の操作 (ファイル出力の生成や .ini 構成ファイルの変更など) では、
  • <🎜 のいずれか 1 つだけを選択できます。 > 名前空間とクラスは、PSR の自動ロード仕様に準拠している必要があります。PSR-0 または PSR-4 のいずれか 从属效应

    クラスの名前付け
  • が必要です。 >follow
  • 大文字で始まるキャメルケースの命名規則

    クラス
  • 内の定数の文字はすべて大文字にする必要があり、単語はアンダースコアで区切られます。 🎜>
  • メソッド名 は、小文字のキャメルケースで始まる StudlyCaps の命名規則に

    準拠する必要があります。
  • 2. ファイル

    2.1. PHP タグ
  • PHP コード

    長いタグまたは を使用する必要があります短い出力タグ。camelCase

    は他のカスタム タグを使用してはなりません。
2.2. 文字エンコーディング

PHP コード

である必要があり、

エンコーディングのみを使用できます。 2.3. 依存関係の影響 (副作用) <?php ?><?= ?>PHP ファイルは、依存関係を生成せずに、クラス、関数、定数などの新しい宣言のみを定義する必要があります。
は依存効果を生み出す論理演算のいずれかですが、 が両方を同時に持つことはできません。

「副作用」という用語は、クラス、

関数、定数などを直接宣言せずに、ファイルをインクルードするだけで実行される論理演算を意味します。

「依存する影響」には、出力の生成、直接 または 、外部サービスへの接続、ini 構成の変更、エラーまたは例外のスロー、グローバル変数または静的変数の変更、読み取りが含まれますが、これらに限定されません。またはファイルなどを書き込みます。 不带BOM的UTF-8

以下は反例であり、宣言を含み、従属効果を生成するコードです。

以下は例であり、宣言のみを含み、従属効果を生成しないコードです。効果: 3. 名前空間とクラス

名前空間とクラスの命名は PSR-0 に従う必要があります。


仕様によれば、各クラスは独立しています。ファイルであり、名前空間には少なくとも 1 つのレベル、つまり最上位の組織名 (ベンダー名) があります。

クラスの命名は、大文字で始まる require のキャメルケース命名規則に従う必要があります。 include

PHP 5.3 以降のバージョンのコード

は、公式の名前空間を

使用する必要があります。
<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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。