PSR-1 Basic Coding Standard--基礎符号化仕様

4225 ワード

注:本文は筆者がPSR規範の翻訳/学習ノートに対して、後で続々と残りの規範を翻訳することができて、翻訳の間違いがあるかもしれない地方、読者が指摘することができることを望んで、とても感謝します.
PSRとは?
PSRはPHP Standards Recommendations(PHP標準推奨)の略であり、PHP-FIG組織(PHP Framework Interop Group-PHPフレームワークインタラクティブオペレーション組織)によって提案されている.PHP-FIGの仕事はプロジェクト間の共通性を探し、開発者がよりよく協力できる方法です.読者はいくつかのPHP技術の文章を閲覧する時、PSR-1、PSR-2、PSR-4、PSR-7などを見ることができるかもしれなくて、これらはPHP-FIGの標準の提案で、これらの標準の提案の命名の構成は'PSR-'+'の番号'で、各PHP_FIG標準の提案は、ほとんどのフレームワークが頻繁に遭遇する特定の問題を解決するためであり、同時にフレームワークは自分で問題を繰り返し解決する必要はなく、PSR標準の提案に従い、共有の解決策を採用する.
現在、PSRの仕様はどれらがありますか?
PSR仕様
  • PSR-1: Basic Coding Standard
  • PSR-2: Coding Style Guide
  • PSR-3: Logger Interface
  • PSR-4: Autoloader
  • PSR-6: Caching Interface
  • PSR-7: HTTP message interfaces
  • PSR-11: Container interface
  • PSR-13: Link definition interfaces
  • PSR-16: Common Interface for Caching Libraries

  • PSR-1とは?
    原文リンク:PSR-1 Basic Coding Standard
    Aims to ensure a high level of technical interoperability between shared PHP code.
    PSR-1は、共有するPHPコード間で高い相互運用性を持たせるためである.
    OverView(概要)
  • PHPファイル(MUST)のみ使用する必要があります
  • PHPファイル(MUST)は、BOMヘッダのないUTF-8符号化フォーマットのみを使用する必要がある.
  • PHPファイル(SHOULD)はclasse,functionsを宣言するか、または宣言する必要があります.constantsなど、general ouput(汎用出力?)phpを変えるIniの配置など、しかし(SHOULD Not)両方あるべきではありません.
  • ネーミングスペースおよびクラス(MUST)は、自動的にロードされるPSR仕様[SR-0,PSR-4]に従う必要があります.
  • 類名は明らかに(MUST)アルパカ式でなければならない.
  • クラスにおける定数の命名(MUST)は、以下のスクライブで分割する大文字でなければならない.
  • 方法名(MUST)はアルパカ式である必要がある.

  • PHP Tags
    PHPコード(MUST)は、長いラベルまたは短いラベル=?>を使用する必要があります.(MUST NOT)他のタイプの書き方はできない.
    Character Encoding
    PHPコード(MUST)は、BOMヘッダのないUTF-8符号化フォーマットのみを使用する必要がある.
    Side Effects
    1つのPHPファイル(SHOULD)は、class、function、constantなどを宣言する必要があり、side effects(実行ロジック)がないか、side effects(実行ロジック)があるべきであるが、(SHOULD NOT)は両方が同時に存在するべきではない.
    'side effects'はclass,function,constantなどの直接関連しない実行ロジックを表し,この含まれているファイルのみから来ている.
    「Side effects」には、general output(汎用出力)、'require'および'include'の使用、外部サービスへの接続、phpの変更などの操作が含まれています.iniの設定、エラーのトリガや異常の放出、グローバル変数や静的変数の変更、ファイルの読み取りや書き込みなどを行う.
    次の例は、「declarations」とside effectsを持つPHPファイルです.

    "; // declaration function foo() { // function body }

    以下は正しい例であり、「declaration」には「side effects」が含まれていない.

    Namespace and Class Names
    This means each class is in a file by itself, and is in a namespace of at least one level: a top-level vendor name
    ネーミングスペースおよびクラス(MUST)は、自動ロード仕様(PSR-0,PSR-4)に従う必要がある.これは、各クラスが1つのファイルにあり、少なくとも1つのlevelのネーミングスペースにおいて、最高レベルのvendor名であることを意味する.
    クラス名の命名はアルパカ式でなければならない.
       PHP5.3以降のバージョンでは、書き込みコード(MUST)は正式なネーミングスペースを使用する必要がある.
    For example:

       PHP5.2.xおよび以前のバージョン(SHOULD)はpseudo-namespacing(擬似ネーミングスペース)の慣例を使用するべきである:クラス名の前に+'Vendor_'接頭辞

    The term “class” refers to all classes, interfaces, and traits.
    本明細書のclassという用語は、すべてのclass、interface、traitsを表す.
    Constants
    クラス中の定数(MUST)は、以下のスクライブ分割の大文字でなければならない.for example:

    Properties
    クラスの属性については、本書では属性名の命名方法を省略することを意図する.(大アルパカ/小アルパカ/下線など)
    どのようなネーミング方式(SHOULD)を採用してもその所在scopeと一致すべきである.scopeはvendorレベル、packageレベル、classレベル、methodレベルである可能性がある.
    Methods
    メソッド名(MUST)はアルパカ式と宣言しなければならない.