設計上の決定
============

この文書は、私たちが詳細な議論の末に達した設計上の決定を記載するものです。
非常に強固な理由があるのでない限りは、これらの決定は一貫性のために守られなければなりません。
これらの決定に対するいかなる変更もコア開発者間の同意を得なければなりません。

1. **[いかなる時にパスエイリアスをサポートするか](https://github.com/yiisoft/yii2/pull/3079#issuecomment-40312268)**
   構成情報にパスエイリアスを使用することは非常に利便性が高いため、構成可能なプロパティに対してはパスエイリアスをサポートすべきである。
   その他の場合には、パスエイリアスに対するサポートを制限すべきである。
2. **いかなる時にメッセージを翻訳するか**
   技術者でないエンドユーザに対して表示され、また、そういうユーザに対して意味を持つメッセージは翻訳されるべきである。
   HTTP ステータスメッセージ、コードに関する例外などは翻訳されるべきではない。
   コンソールメッセージは、エンコーディングとコードページの処理に困難が伴うため、常に英語で表示されるものとする。
3. **[認証クライアントのサポートの追加](https://github.com/yiisoft/yii2/issues/1652)**
   保守性を高めるために、コアエクステンションには認証クライアントをこれ以上追加しない。
   認証クライアントの追加はユーザエクステンションの形でなされるべきである。
4. **クロージャを使うときは**、たとえ使用されないものがある場合でも、**渡されたすべてのパラメータをシグニチャに含める** ことが推奨される。
   このようにすると、全ての情報が直接に見えるので、コードの修正やコピーがより容易になり、どのパラメータが実際に利用できるかをドキュメントで調べる必要がなくなる。
   ([#6584](https://github.com/yiisoft/yii2/pull/6584), [#6875](https://github.com/yiisoft/yii2/issues/6875))