PSR-1 基本コード仕様

WBOY
リリース: 2016-06-20 12:31:53
オリジナル
1000 人が閲覧しました

基本コード仕様

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

1. 概要-----

  • PHP コード ファイル

  • PHP コード ファイル

    は BOM なしで UTF-8 でエンコードする必要があります。

  • PHPコード
  • は、クラス、関数、定数、または副次的な効果を生み出すその他の操作 (ファイル出力の生成や .ini 構成ファイルの変更など) などの宣言のみを定義する必要があります。選択できるのは 1 つだけです。

    名前空間とクラス
  • は、PSR の自動ロード仕様:
  • <🎜 のいずれかに準拠する必要があります。 > クラス の命名は

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

    メソッド名
  • は、小文字で始まるキャメルケースの命名規則に
  • 準拠する必要があります。 < ?php ?>長いタグまたは 短い出力タグ

    他のカスタム タグを使用しないでください。

  • 2.2. 文字エンコーディング
  • PHP コードは BOM なしの UTF-8 エンコーディングのみを使用する必要があります。 2.3. 依存関係の影響 (副作用)

  • PHP ファイルでは、
は、クラス、関数、定数などの新しい宣言のみを定義する必要があります。依存関係を生成しない 効果操作は、依存効果を生成する論理操作のいずれかですが、
    が両方を同時に持つべきではありません。
  1. 「副作用」という用語は、クラス、関数、定数などを直接宣言せずに、ファイルをインクルードするだけで実行される論理演算を意味します。

「依存する影響」には、出力の生成、直接の require または include、外部サービスへの接続、ini 構成の変更、エラーまたは例外のスロー、グローバル変数または静的変数の変更、ファイルの読み取りまたは書き込み、等

以下は反例であり、宣言と従属効果を含むコードです。

以下は例であり、宣言のみを含み、従属効果を生成しないコードです。 :

名前空間とクラス

名前空間とクラスの命名は [PSR-0][] に従う必要があります。 仕様では、各クラスは個別のファイルであり、名前空間には少なくとも 1 つのレベル、つまり最上位の組織名 (ベンダー名) があります。

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

PHP 5.3 以降のバージョンのコードは、公式の名前空間を使用する必要があります。 例:

5.2.x およびそれ以前のバージョン

では、

疑似名前空間の書き込みを使用する必要があり、慣例としてトップレベルの組織名 (ベンダー) を使用します。 Vendor _ などの名前) はクラスの接頭辞です。

<?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()    {        // 函数主体部分    }}
ログイン後にコピー
    ここでの「クラス」とは、すべてのクラス、インターフェイス、および再利用可能なコード ブロック (特性) を指します
  1. 4.1. 定数

クラス

内のすべての文字は

で大文字にする必要があり、単語はアンダースコアで区切られます。

次のコードを参照してください:

4.2. 属性

<?php// PHP 5.3及以后版本的写法namespace Vendor\Model;class Foo{}
ログイン後にコピー
クラスの属性命名はキャメルケース ($StudlyCaps) に従うことができます。 ) 大文字で始まるか、小文字で始まる CamelCase ($camelCase) またはアンダースコア区切り ($under_score) はこの仕様では必須ではありませんが、どの命名方法に従う場合でも、

内で一貫している必要があります。一定の範囲。このスコープは、チーム全体、パッケージ全体、クラス全体、またはメソッド全体にすることができます。

4.3. メソッド
<?php// 5.2.x及之前版本的写法class Vendor_Model_Foo{}
ログイン後にコピー
    メソッド名
  1. は、小文字で始まるキャメルケース () スタイルの命名規則に
  2. 準拠する必要があります。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート