Ground Sunlight

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

ユーザ用ツール

サイト用ツール


psr:psr3

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
psr:psr3 [2020/04/29 22:57]
y2sunlight [2. パッケージ]
psr:psr3 [2020/09/01 11:52] (現在)
tanaka [PSR-3: Logger Interface]
行 3: 行 3:
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-04-28//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-04-28//
  
-本章は、若干の補足を加筆してはいるものの単に[[https://www.php-fig.org/psr/|PSRのサイト]]を翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。+本章は、若干の補足を加筆してはいるものの単に[[https://www.php-fig.org/psr/|PSRのサイト]]を日本語に翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。
  
-==== 目次 ==== +関連記事 
-  * [[psr:top|PHP - PHP標準勧告]]+ 
 +  * [[psr:top|PSR - PHP標準勧告]]
   * [[psr:psr1|PSR-1: Basic Coding Standard - 基本コーディング規約]]   * [[psr:psr1|PSR-1: Basic Coding Standard - 基本コーディング規約]]
   * PSR-3: Logger Interface - ロガーインターフェイス   * PSR-3: Logger Interface - ロガーインターフェイス
行 12: 行 13:
   * [[psr:psr5|PSR-5: PHPDoc Standard(Draft) - PHPDoc規約]]   * [[psr:psr5|PSR-5: PHPDoc Standard(Draft) - PHPDoc規約]]
   * [[psr:psr6|PSR-6: Caching Interface - キャッシングインターフェイス]]    * [[psr:psr6|PSR-6: Caching Interface - キャッシングインターフェイス]] 
 +  * [[psr:psr7|PSR-7: HTTP Message Interface - HTTPメッセージインターフェイス]] 
 +  * [[psr:psr11|PSR-11: Container Interface - コンテナインターフェイス]] 
 +  * [[psr:psr12|PSR-12: Extended Coding Style - 拡張コーディングスタイル]] 
 +  * [[psr:psr13|PSR-13: Link definition interfaces - リンク定義インターフェース]]
 +  * [[psr:psr14|PSR-14: Event Dispatcher - イベントディスパッチャー]] 
 +  * [[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タグ]] 
  
 ----- -----
行 51: 行 62:
 ==== 1.2 メッセージ ===== ==== 1.2 メッセージ =====
  
-  * すべてのメソッドは、メッセージとして文字列、または **<nowiki>__</nowiki>toString()** メソッドを持つオブジェクトを受け入れます。実装者は、オブジェクトが渡された場合は特別な処理を行う場合があります (''MAY'')。そうでない場合は、文字列にキャストする必要があります (''MUST'')。+  * すべてのメソッドは、メッセージとして文字列、または **<nowiki>__toString()</nowiki>** メソッドを持つオブジェクトを受け入れます。実装者は、オブジェクトが渡された場合は特別な処理を行う場合があります (''MAY'')。そうでない場合は、文字列にキャストする必要があります (''MUST'')。
  
   * メッセージには、実装者がコンテキスト配列の値で置き換えることができるプレースホルダーが含まれる場合があります (''MAY'')。 \\ \\ プレースホルダー名は、コンテキスト配列のキーに対応している必要があります (''MUST'')。\\ \\ プレースホルダー名は、1つの開始中括弧 **{** および 終了中括弧 **}** で 区切る必要があります (''MUST'')。区切り文字とプレースホルダー名の間に空白があってはいけません (''MUST NOT'')。 例:{name} \\ \\ プレースホルダー名は、**A〜Z**、**a〜z**、**0〜9**、下線( **_** )、および ピリオド( **.** ) の文字だけで構成する必要があります (''SHOULD'')。\\ \\ 実装者は、プレースホルダーを使用して、さまざまなエスケープ方法を実装し、ログを表示用に変換できます (''MAY'')。ユーザはプレースホルダー値を事前にエスケープしないでください (''SHOULD NOT'')。というのは、データはどのコンテキストで表示されるかがわからないからです。\\ \\ 以下は、参照のみを目的として提供されているプレースホルダー挿入の実装例です。\\ \\ <code php>   * メッセージには、実装者がコンテキスト配列の値で置き換えることができるプレースホルダーが含まれる場合があります (''MAY'')。 \\ \\ プレースホルダー名は、コンテキスト配列のキーに対応している必要があります (''MUST'')。\\ \\ プレースホルダー名は、1つの開始中括弧 **{** および 終了中括弧 **}** で 区切る必要があります (''MUST'')。区切り文字とプレースホルダー名の間に空白があってはいけません (''MUST NOT'')。 例:{name} \\ \\ プレースホルダー名は、**A〜Z**、**a〜z**、**0〜9**、下線( **_** )、および ピリオド( **.** ) の文字だけで構成する必要があります (''SHOULD'')。\\ \\ 実装者は、プレースホルダーを使用して、さまざまなエスケープ方法を実装し、ログを表示用に変換できます (''MAY'')。ユーザはプレースホルダー値を事前にエスケープしないでください (''SHOULD NOT'')。というのは、データはどのコンテキストで表示されるかがわからないからです。\\ \\ 以下は、参照のみを目的として提供されているプレースホルダー挿入の実装例です。\\ \\ <code php>
行 109: 行 120:
   * **Psr\Log\NullLogger** は、インターフェイスと共に提供されます。それは、ロガーが与えられていない時に、フォールバックとして「ブラックホール」実装を提供するために、インターフェイスのユーザによって使用されます (''MAY'')。ただし、コンテキストデータの作成にコストがかかる場合は、条件付きロギングの方が良いアプローチかもしれません。   * **Psr\Log\NullLogger** は、インターフェイスと共に提供されます。それは、ロガーが与えられていない時に、フォールバックとして「ブラックホール」実装を提供するために、インターフェイスのユーザによって使用されます (''MAY'')。ただし、コンテキストデータの作成にコストがかかる場合は、条件付きロギングの方が良いアプローチかもしれません。
  
-> ''上記の原文'' \\ The Psr\Log\NullLogger is provided together with the interface. It MAY be used by users of the interface to provide a fall-back “black hole” implementation if no logger is given to them. However, conditional logging may be a better approach if context data creation is expensive. \\ \\  --- 曖昧な翻訳 ---\\ (特に、最後のセンテンスの意味が良く分かりませんでした。conditional logging とは何を意味するのか? それがなぜコンテキストデータ作成と関係しているのか? +> ''上記の原文'' \\ The Psr\Log\NullLogger is provided together with the interface. It MAY be used by users of the interface to provide a fall-back “black hole” implementation if no logger is given to them. However, conditional logging may be a better approach if context data creation is expensive. \\ \\  --- 曖昧な翻訳 ---\\ 特に、最後のセンテンスの意味が良く分かりませんでした。conditional logging とは何を意味するのか? それがなぜコンテキストデータ作成と関係しているのか? 
  
   * **Psr\Log\LoggerAwareInterface** には **setLogger(LoggerInterface $logger)** メソッドのみが含まれており、フレームワークが任意のインスタンスにロガーを Auto Wiring するために使用できます。   * **Psr\Log\LoggerAwareInterface** には **setLogger(LoggerInterface $logger)** メソッドのみが含まれており、フレームワークが任意のインスタンスにロガーを Auto Wiring するために使用できます。
行 127: 行 138:
  
 ===== 3. Psr\Log\LoggerInterface ====== ===== 3. Psr\Log\LoggerInterface ======
 +
 +{{tablelayout?colwidth="20em"}}
 +^メソッド^要約^
 +|emergency\\ ($message, array $context = array())|システムが使用できない|
 +|alert\\ ($message, array $context = array())|すぐに行動を起こす必要がある|
 +|critical\\ ($message, array $context = array())|危機的な状態|
 +|error\\ ($message, array $context = array())|すぐに対処する必要はないが、通常はログに記録して監視する必要がある実行時エラー|
 +|warning\\ ($message, array $context = array())|エラーではない例外的な出来事|
 +|notice\\ ($message, array $context = array())|正常だが重要なイベント|
 +|info\\ ($message, array $context = array())|興味深いイベント|
 +|debug\\ ($message, array $context = array())|詳細なデバッグ情報|
 +|log($level,\\ $message, array $context = array()|任意のレベルのロギング|
  
 <code php LoggerInterface.php> <code php LoggerInterface.php>
psr/psr3.1588168648.txt.gz · 最終更新: 2020/04/29 22:57 by y2sunlight