Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


psr:psr12

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
psr:psr12 [2020/07/11 17:22]
y2sunlight [5.3 while, do while]
psr:psr12 [2020/09/01 11:53] (現在)
tanaka [PSR-12: Extended Coding Style]
行 1: 行 1:
-> 編集中 
- 
 ====== PSR-12: Extended Coding Style ====== ====== PSR-12: Extended Coding Style ======
  
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-06-23//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-06-23//
  
-本章は、若干の補足を加筆してはいるものの単に[[https://www.php-fig.org/psr/|PSRのサイト]]を翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。+本章は、若干の補足を加筆してはいるものの単に[[https://www.php-fig.org/psr/|PSRのサイト]]を日本語に翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。
  
 関連記事 関連記事
行 20: 行 18:
   * [[psr:psr13|PSR-13: Link definition interfaces - リンク定義インターフェース]]   * [[psr:psr13|PSR-13: Link definition interfaces - リンク定義インターフェース]]
   * [[psr:psr14|PSR-14: Event Dispatcher - イベントディスパッチャー]]    * [[psr:psr14|PSR-14: Event Dispatcher - イベントディスパッチャー]] 
-  * [[psr:psr15|PSR-15: HTTP Handlers - HTTPハンドラー]] +  * [[psr:psr15|PSR-15: HTTP Server Request Handlers - HTTPサーバーリクエストハンドラー]]  
 +  * [[psr:psr16|PSR-16: Common Interface for Caching Libraries - キャッシングライブラリのための共通インターフェース]]  
 +  * [[psr:psr17|PSR-17: HTTP Factories - HTTPファクトリー]]  
 +  * [[psr:psr18|PSR-18: HTTP Client - HTTPクライアント]]  
 +  * [[psr:psr19|PSR-19: PHPDoc tags(Draft) - PHPDocタグ]] 
  
 ----- -----
行 680: 行 682:
 すべての制御キーワードが単一の単語のように見えるように、''else if'' の代わりにキーワード ''elseif'' を使用すべきです( ''SHOULD'' )。 すべての制御キーワードが単一の単語のように見えるように、''else if'' の代わりにキーワード ''elseif'' を使用すべきです( ''SHOULD'' )。
  
-丸括弧( ''('' '')'' )内の式は複数の行に分割される場合があり( ''MAY'' )、後続の各行は少なくとも1回インデントされます。その場合、最初の条件は次の行になければなりません( ''MUST'' )。閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、それら自身の行に一緒に配置する必要があります( ''MUST'' )。条件間のブール演算子は、両方の組み合わせではなく、常に行の先頭または末尾になければなりません( ''MUST'' )。+丸括弧( ''('' '')'' )内の式は複数の行に分割される場合があり( ''MAY'' )、後続の各行は少なくとも1回インデントされます。その場合、最初の条件は次の行になければなりません( ''MUST'' )。閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、一緒の行に配置する必要があります( ''MUST'' )。条件間のブール演算子は、両方の組み合わせではなく、常に行の先頭または末尾になければなりません( ''MUST'' )。
  
 <code php> <code php>
行 725: 行 727:
 </code> </code>
  
-丸括弧( ''('' '')'' )内の式は複数の行に分割される場合があり( ''MAY'' )、後続の各行は少なくとも1回インデントされます。その場合、最初の条件は次の行になければなりません( ''MUST'' )。閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、それら自身の行に一緒に配置する必要があります( ''MUST'' )。条件間のブール演算子は、両方の組み合わせではなく、常に行の先頭または末尾になければなりません( ''MUST'' )。+丸括弧( ''('' '')'' )内の式は複数の行に分割される場合があり( ''MAY'' )、後続の各行は少なくとも1回インデントされます。その場合、最初の条件は次の行になければなりません( ''MUST'' )。閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、一緒の行に配置する必要があります( ''MUST'' )。条件間のブール演算子は、両方の組み合わせではなく、常に行の先頭または末尾になければなりません( ''MUST'' )。
  
 <code php> <code php>
行 752: 行 754:
 </code> </code>
  
-丸括弧( ''('' '')'' )内の式は複数の行に分割される場合があり( ''MAY'' )、後続の各行は少なくとも1回インデントされます。その場合、最初の条件は次の行になければなりません( ''MUST'' )。閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、それら自身の行に一緒に配置する必要があります( ''MUST'' )。条件間のブール演算子は、両方の組み合わせではなく、常に行の先頭または末尾になければなりません( ''MUST'' )。+丸括弧( ''('' '')'' )内の式は複数の行に分割される場合があり( ''MAY'' )、後続の各行は少なくとも1回インデントされます。その場合、最初の条件は次の行になければなりません( ''MUST'' )。閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、一緒の行に配置する必要があります( ''MUST'' )。条件間のブール演算子は、両方の組み合わせではなく、常に行の先頭または末尾になければなりません( ''MUST'' )。
  
 <code php> <code php>
行 791: 行 793:
  
 ==== 5.4 for ===== ==== 5.4 for =====
- 
-A for statement looks like the following. Note the placement of parentheses, spaces, and braces. 
  
 ''for'' ステートメントは次のようになります。丸括弧( ''('' '')'' )、スペース、および中括弧( ''{'' ''}'' )の配置に注意してください。 ''for'' ステートメントは次のようになります。丸括弧( ''('' '')'' )、スペース、および中括弧( ''{'' ''}'' )の配置に注意してください。
行 804: 行 804:
 </code> </code>
  
-Expressions in parentheses MAY be split across multiple lines, where each subsequent line is indented at least once. When doing so, the first expression MUST be on the next line. The closing parenthesis and opening brace MUST be placed together on their own line with one space between them. +丸括弧( ''('' '')'' )内の式は複数の行に分割される場合があり( ''MAY'' )、後続の各行は少なくとも1回インデントされます。その場合、最初の条件は次の行になければなりません( ''MUST'' )。閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、一緒の行に配置する必要があります( ''MUST'' )。
- +
-丸括弧( ''('' '')'' )内の式は複数の行に分割される場合があり( ''MAY'' )、後続の各行は少なくとも1回インデントされます。その場合、最初の条件は次の行になければなりません( ''MUST'' )。閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、それら自身の行に一緒に配置する必要があります( ''MUST'' )。+
  
 <code php> <code php>
行 824: 行 822:
  
 ==== 5.5 foreach ===== ==== 5.5 foreach =====
- 
-A foreach statement looks like the following. Note the placement of parentheses, spaces, and braces. 
  
 ''foreach'' ステートメントは次のようになります。丸括弧( ''('' '')'' )、スペース、および中括弧( ''{'' ''}'' )の配置に注意してください。 ''foreach'' ステートメントは次のようになります。丸括弧( ''('' '')'' )、スペース、および中括弧( ''{'' ''}'' )の配置に注意してください。
行 840: 行 836:
  
 ==== 5.6 try, catch, finally ===== ==== 5.6 try, catch, finally =====
- 
-A try-catch-finally block looks like the following. Note the placement of parentheses, spaces, and braces. 
  
 ''try-catch-finally'' ブロックは次のようになります。丸括弧( ''('' '')'' )、スペース、および中括弧( ''{'' ''}'' )の配置に注意してください。 ''try-catch-finally'' ブロックは次のようになります。丸括弧( ''('' '')'' )、スペース、および中括弧( ''{'' ''}'' )の配置に注意してください。
行 862: 行 856:
  
 ===== 6. オペレーター ====== ===== 6. オペレーター ======
- 
-Style rules for operators are grouped by arity (the number of operands they take). 
  
 演算子のスタイルルールは、アリティ(演算子が取るオペランドの数)ごとにグループ化されています。 演算子のスタイルルールは、アリティ(演算子が取るオペランドの数)ごとにグループ化されています。
- 
-When space is permitted around an operator, multiple spaces MAY be used for readability purposes. 
  
 演算子の周囲にスペースが許可されている場合、読みやすさの目的で複数のスペースを使用できます( ''MAY'' )。 演算子の周囲にスペースが許可されている場合、読みやすさの目的で複数のスペースを使用できます( ''MAY'' )。
- 
-All operators not described here are left undefined. 
  
 ここで説明されていないすべての演算子は未定義のままです。 ここで説明されていないすべての演算子は未定義のままです。
行 878: 行 866:
  
 ==== 6.1. 単項演算子 ===== ==== 6.1. 単項演算子 =====
- 
-The increment/decrement operators MUST NOT have any space between the operator and operand. 
  
 インクリメント/デクリメント演算子は、演算子とオペランドの間にスペースがあってはいけません( ''MUST NOT'' )。 インクリメント/デクリメント演算子は、演算子とオペランドの間にスペースがあってはいけません( ''MUST NOT'' )。
行 887: 行 873:
 ++$j; ++$j;
 </code> </code>
- 
-Type casting operators MUST NOT have any space within the parentheses: 
  
 型キャスト演算子は丸括弧( ''('' '')'' )内にスペースがあってはいけません( ''MUST NOT'' ): 型キャスト演算子は丸括弧( ''('' '')'' )内にスペースがあってはいけません( ''MUST NOT'' ):
行 899: 行 883:
  
 ==== 6.2. 二項演算子 ===== ==== 6.2. 二項演算子 =====
- 
-All binary arithmetic, comparison, assignment, bitwise, logical, string, and type operators MUST be preceded and followed by at least one space: 
  
 すべての二項演算子(算術演算子、比較演算子、代入演算子、ビット演算子、論理演算子、文字列演算子、および型演算子)の前後には、少なくとも1つのスペースが必要です( ''MUST'' ): すべての二項演算子(算術演算子、比較演算子、代入演算子、ビット演算子、論理演算子、文字列演算子、および型演算子)の前後には、少なくとも1つのスペースが必要です( ''MUST'' ):
行 915: 行 897:
  
 ==== 6.3. 三項演算子 ===== ==== 6.3. 三項演算子 =====
- 
-The conditional operator, also known simply as the ternary operator, MUST be preceded and followed by at least one space around both the ? and : characters: 
  
 条件演算子は、単に三項演算子とも呼ばれ、''?'' と '':'' の文字の前後に少なくとも1つのスペースがなければなりません( ''MUST'' ): 条件演算子は、単に三項演算子とも呼ばれ、''?'' と '':'' の文字の前後に少なくとも1つのスペースがなければなりません( ''MUST'' ):
行 923: 行 903:
 $variable = $foo ? 'foo' : 'bar'; $variable = $foo ? 'foo' : 'bar';
 </code> </code>
- 
-When the middle operand of the conditional operator is omitted, the operator MUST follow the same style rules as other binary comparison operators: 
  
 条件演算子の中央のオペランドが省略されている場合、演算子は他の二項比較演算子と同じスタイル規則に従う必要があります( ''MUST'' ): 条件演算子の中央のオペランドが省略されている場合、演算子は他の二項比較演算子と同じスタイル規則に従う必要があります( ''MUST'' ):
行 935: 行 913:
  
 ===== 7. クロージャー ====== ===== 7. クロージャー ======
- 
-Closures MUST be declared with a space after the function keyword, and a space before and after the use keyword. 
  
 クロージャーは、''function'' キーワードの後にスペースを使用し、''use'' キーワードの前後にスペースを使用して宣言する必要があります( ''MUST'' )。 クロージャーは、''function'' キーワードの後にスペースを使用し、''use'' キーワードの前後にスペースを使用して宣言する必要があります( ''MUST'' )。
- 
-The opening brace MUST go on the same line, and the closing brace MUST go on the next line following the body. 
  
 開き中括弧( ''{'' )は同じ行に配置する必要があり( ''MUST'' )、閉じ中括弧( ''}'' )は本文に続く次の行に配置する必要があります( ''MUST'' )。 開き中括弧( ''{'' )は同じ行に配置する必要があり( ''MUST'' )、閉じ中括弧( ''}'' )は本文に続く次の行に配置する必要があります( ''MUST'' )。
- 
-There MUST NOT be a space after the opening parenthesis of the argument list or variable list, and there MUST NOT be a space before the closing parenthesis of the argument list or variable list. 
  
 引数リストまたは変数リストの開き丸括弧( ''('' )の後にスペースがあってはならず( ''MUST NOT'' )、引数リストまたは変数リストの閉じ丸括弧( '')'' )の前にスペースがあってはなりません( ''MUST NOT'' )。 引数リストまたは変数リストの開き丸括弧( ''('' )の後にスペースがあってはならず( ''MUST NOT'' )、引数リストまたは変数リストの閉じ丸括弧( '')'' )の前にスペースがあってはなりません( ''MUST NOT'' )。
- 
-In the argument list and variable list, there MUST NOT be a space before each comma, and there MUST be one space after each comma. 
  
 引数リストと変数リストでは、各カンマの前にスペースがあってはならず( ''MUST NOT'' )、各カンマの後にスペースが1つなければなりません( ''MUST'' )。 引数リストと変数リストでは、各カンマの前にスペースがあってはならず( ''MUST NOT'' )、各カンマの後にスペースが1つなければなりません( ''MUST'' )。
- 
-Closure arguments with default values MUST go at the end of the argument list. 
  
 デフォルト値を持つクロージャー引数は、引数リストの最後に配置する必要があります( ''MUST'' )。 デフォルト値を持つクロージャー引数は、引数リストの最後に配置する必要があります( ''MUST'' )。
  
-If a return type is present, it MUST follow the same rules as with normal functions and methods; if the use keyword is present, the colon MUST follow the use list closing parentheses with no spaces between the two characters. +戻り値の型が存在する場合、通常の関数とメソッドと同じルールに従う必要があります( ''MUST'' )。''use'' キーワードが存在する場合、コロン( '':'' )は、''use'' リストの閉じ丸括弧( '')'' )の後に続く必要があります( ''MUST'' )。その時、2つの文字( '')'' と '':'' )の間にスペースは入れません。
- +
-戻り値の型が存在する場合、通常の関数とメソッドと同じルールに従う必要があります( ''MUST'' )。''use'' キーワードが存在する場合、コロンは、''use'' リストの閉じ丸括弧( '')'' )の後に続く必要があります( ''MUST'' )。その時、2つの文字( '')'' と '':'' )の間にスペースは入れません。 +
- +
-A closure declaration looks like the following. Note the placement of parentheses, commas, spaces, and braces:+
  
 クロージャー宣言は次のようになります。丸括弧( ''('' '')'' )、スペース、および中括弧( ''{'' ''}'' )の配置に注意してください。 クロージャー宣言は次のようになります。丸括弧( ''('' '')'' )、スペース、および中括弧( ''{'' ''}'' )の配置に注意してください。
行 979: 行 943:
 }; };
 </code> </code>
- 
-Argument lists and variable lists MAY be split across multiple lines, where each subsequent line is indented once. When doing so, the first item in the list MUST be on the next line, and there MUST be only one argument or variable per line. 
  
 引数リストと変数リストは、複数の行に分割されてもよく( ''MAY'' )、後続の各行は1回インデントされます。その場合、リストの最初の項目は次の行になければならず( ''MUST'' )、1行に1つの引数または変数のみが存在しなければなりません( ''MUST'' )。 引数リストと変数リストは、複数の行に分割されてもよく( ''MAY'' )、後続の各行は1回インデントされます。その場合、リストの最初の項目は次の行になければならず( ''MUST'' )、1行に1つの引数または変数のみが存在しなければなりません( ''MUST'' )。
- 
-When the ending list (whether of arguments or variables) is split across multiple lines, the closing parenthesis and opening brace MUST be placed together on their own line with one space between them. 
  
 最後のリスト(引数または変数に関係なく)が複数の行に分割されている場合、閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、同じ行に配置する必要があります( ''MUST'' )。 最後のリスト(引数または変数に関係なく)が複数の行に分割されている場合、閉じ丸括弧( '')'' )と開き中括弧( ''{'' )は、それらの間に1つのスペースを入れて、同じ行に配置する必要があります( ''MUST'' )。
- 
-The following are examples of closures with and without argument lists and variable lists split across multiple lines. 
  
 以下は、複数行に分割された引数リストと変数リストがある場合とない場合のクロージャーの例です。 以下は、複数行に分割された引数リストと変数リストがある場合とない場合のクロージャーの例です。
行 1041: 行 999:
 </code> </code>
  
-Note that the formatting rules also apply when the closure is used directly in a function or method call as an argument. +クロージャーが関数またはメソッドの呼び出しで引数として直接使用される場合にも、フォーマッティング・ルールが適用されることに注意してください。
- +
-クロージャーが関数またはメソッドの呼び出しで引数として直接使用される場合にも、フォーマッルールが適用されることに注意してください。+
  
 <code php> <code php>
行 1060: 行 1016:
  
 ===== 8. 匿名クラス ====== ===== 8. 匿名クラス ======
- 
-Anonymous Classes MUST follow the same guidelines and principles as closures in the above section. 
  
 匿名クラスは、上記のセクションのクロージャーと同じガイドラインと原則に従う必要があります( ''MUST'' )。 匿名クラスは、上記のセクションのクロージャーと同じガイドラインと原則に従う必要があります( ''MUST'' )。
行 1070: 行 1024:
 $instance = new class {}; $instance = new class {};
 </code> </code>
- 
-The opening brace MAY be on the same line as the class keyword so long as the list of implements interfaces does not wrap. If the list of interfaces wraps, the brace MUST be placed on the line immediately following the last interface. 
  
 実装インターフェースのリストが折り返されない限り、開き中括弧( ''{'' )は ''class'' キーワードと同じ行に置くことができます( ''MAY'' )。インターフェイスのリストが折り返されている場合、中括弧( ''('' '')'' )は最後のインターフェイスの直後の行に配置する必要があります( ''MUST'' )。 実装インターフェースのリストが折り返されない限り、開き中括弧( ''{'' )は ''class'' キーワードと同じ行に置くことができます( ''MAY'' )。インターフェイスのリストが折り返されている場合、中括弧( ''('' '')'' )は最後のインターフェイスの直後の行に配置する必要があります( ''MUST'' )。
psr/psr12.1594455727.txt.gz · 最終更新: 2020/07/11 17:22 by y2sunlight