From 1af90a92cdeccec0a50a23856141668f3c966316 Mon Sep 17 00:00:00 2001 From: Nobuo Kihara Date: Sat, 4 Jan 2020 21:27:58 +0900 Subject: [PATCH] Updated Japanese docs [ci skip] (#17779) --- docs/guide-ja/concept-di-container.md | 40 +++++++++++++++++------------------ docs/guide-ja/db-dao.md | 6 ------ docs/guide-ja/helper-html.md | 8 +++---- docs/guide-ja/rest-quick-start.md | 4 +++- docs/guide-ja/runtime-requests.md | 24 +++++++++++++++++++++ docs/guide-ja/start-looking-ahead.md | 2 +- 6 files changed, 51 insertions(+), 33 deletions(-) diff --git a/docs/guide-ja/concept-di-container.md b/docs/guide-ja/concept-di-container.md index 4c47c95..de8126e 100644 --- a/docs/guide-ja/concept-di-container.md +++ b/docs/guide-ja/concept-di-container.md @@ -169,6 +169,9 @@ $container->set('yii\mail\MailInterface', 'yii\swiftmailer\Mailer'); // Connection のインスタンスを作成できます $container->set('foo', 'yii\db\Connection'); +// `Instance::of` を使ってエイリアスの登録。 +$container->set('bar', Instance::of('foo')); + // 構成情報をともなうクラスの登録。クラスが get() でインスタンス化 // されるとき構成情報が適用されます $container->set('yii\db\Connection', [ @@ -179,7 +182,7 @@ $container->set('yii\db\Connection', [ ]); // クラスの構成情報をともなうエイリアス名の登録 -// この場合、クラスを指定する "class" 要素が必要です +// この場合、クラスを指定する "class" または "__class" 要素が必要です $container->set('db', [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=demo', @@ -188,11 +191,12 @@ $container->set('db', [ 'charset' => 'utf8', ]); -// PHP コーラブルの登録 +// コーラブルなクロージャまたは配列の登録 // このコーラブルは $container->get('db') が呼ばれるたびに実行されます $container->set('db', function ($container, $params, $config) { return new \yii\db\Connection($config); }); +$container->set('db', ['app\db\DbFactory', 'create']); // コンポーネント・インスタンスの登録 // $container->get('pageCache') は呼ばれるたびに毎回同じインスタンスを返します @@ -215,7 +219,6 @@ $container->setSingleton('yii\db\Connection', [ ]); ``` - 依存を解決する -------------- @@ -440,28 +443,23 @@ $reader = $container->get('app\storage\DocumentsReader); [依存を解決する](#resolving-dependencies) のセクションで説明したように、[[yii\di\Container::set()|set()]] と [[yii\di\Container::setSingleton()|setSingleton()]] は、 オプションで、第三の引数として依存のコンストラクタのパラメータを取ることが出来ます。 -コンストラクタのパラメータを設定するために、以下の構成情報配列の形式を使うことが出来ます。 - - - `key`: クラス名、インタフェイス名、または、エイリアス名。 - このキーが [[yii\di\Container::set()|set()]] メソッドの最初の引数 `$class` として渡されます。 - - `value`: 二つの要素を持つ配列。最初の要素は [[set()]] メソッドに二番目のパラメータ `$definition` - として渡され、第二の要素が `$params` として渡されます。 +コンストラクタのパラメータを設定するために、`__construct()` オプションを使うことが出来ます。 では、私たちの例を修正しましょう。 ```php $container->setDefinitions([ 'tempFileStorage' => [ // 便利なようにエイリアスを作りました - ['class' => 'app\storage\FileStorage'], - ['/var/tempfiles'] // 何らかの構成ファイルから抽出することも可能 + 'class' => 'app\storage\FileStorage', + '__construct()' => ['/var/tempfiles'], // 何らかの構成ファイルから抽出することも可能 ], 'app\storage\DocumentsReader' => [ - ['class' => 'app\storage\DocumentsReader'], - [Instance::of('tempFileStorage')] + 'class' => 'app\storage\DocumentsReader', + '__construct()' => [Instance::of('tempFileStorage')], ], 'app\storage\DocumentsWriter' => [ - ['class' => 'app\storage\DocumentsWriter'], - [Instance::of('tempFileStorage')] + 'class' => 'app\storage\DocumentsWriter', + '__construct()' => [Instance::of('tempFileStorage')] ] ]); @@ -488,19 +486,19 @@ $reader = $container->get('app\storage\DocumentsReader); ```php $container->setSingletons([ 'tempFileStorage' => [ - ['class' => 'app\storage\FileStorage'], - ['/var/tempfiles'] + 'class' => 'app\storage\FileStorage', + '__construct()' => ['/var/tempfiles'] ], ]); $container->setDefinitions([ 'app\storage\DocumentsReader' => [ - ['class' => 'app\storage\DocumentsReader'], - [Instance::of('tempFileStorage')] + 'class' => 'app\storage\DocumentsReader', + '__construct()' => [Instance::of('tempFileStorage')], ], 'app\storage\DocumentsWriter' => [ - ['class' => 'app\storage\DocumentsWriter'], - [Instance::of('tempFileStorage')] + 'class' => 'app\storage\DocumentsWriter', + '__construct()' => [Instance::of('tempFileStorage')], ] ]); diff --git a/docs/guide-ja/db-dao.md b/docs/guide-ja/db-dao.md index f8f4da7..b84587a 100644 --- a/docs/guide-ja/db-dao.md +++ b/docs/guide-ja/db-dao.md @@ -19,12 +19,6 @@ Yii 2.0 では、DAO は下記の DBMS のサポートを内蔵しています - [Oracle](http://www.oracle.com/us/products/database/overview/index.html) - [MSSQL](https://www.microsoft.com/en-us/sqlserver/default.aspx): バージョン 2008 以上。 -> Info: Yii 2.1 以降では、CUBRID、Oracle および MSSQL に対する DAO サポートは、フレームワーク内蔵のコア・コンポーネント - としては提供されていません。それらは、独立した [エクステンション](structure-extensions.md) としてインストールされる - 必要があります。[yiisoft/yii2-oracle](https://www.yiiframework.com/extension/yiisoft/yii2-oracle) および - [yiisoft/yii2-mssql](https://www.yiiframework.com/extension/yiisoft/yii2-mssql) が - [公式エクステンション](https://www.yiiframework.com/extensions/official) として提供されています。 - > Note: PHP 7 用の pdo_oci の新しいバージョンは、現在、ソース・コードとしてのみ存在します。 [コミュニティによる説明](https://github.com/yiisoft/yii2/issues/10975#issuecomment-248479268) に従ってコンパイルするか、 または、[PDO エミュレーション・レイヤ](https://github.com/taq/pdooci) を使って下さい。 diff --git a/docs/guide-ja/helper-html.md b/docs/guide-ja/helper-html.md index 4df8c5a..14693f2 100644 --- a/docs/guide-ja/helper-html.md +++ b/docs/guide-ja/helper-html.md @@ -327,18 +327,18 @@ echo Html::getAttributeName('dates[0]'); 埋め込みのスタイルとスクリプトをラップするタグを生成するメソッドが二つあります。 ```php - + 'print']) ?> これは次の HTML を生成します。 - + - true]) ?> + これは次の HTML を生成します。 - + ``` CSS ファイルの外部スタイルをリンクしたい場合は、次のようにします。 diff --git a/docs/guide-ja/rest-quick-start.md b/docs/guide-ja/rest-quick-start.md index 4243daf..79e4c61 100644 --- a/docs/guide-ja/rest-quick-start.md +++ b/docs/guide-ja/rest-quick-start.md @@ -162,7 +162,9 @@ Content-Type: application/xml 次のコマンドは、JSON 形式でユーザのデータを持つ POST リクエストを送信して、新しいユーザを作成します。 ``` -$ curl -i -H "Accept:application/json" -H "Content-Type:application/json" -XPOST "http://localhost/users" -d '{"username": "example", "email": "user@example.com"}' +$ curl -i -H "Accept:application/json" -H "Content-Type:application/json" \ + -XPOST "http://localhost/users" \ + -d '{"username": "example", "email": "user@example.com"}' HTTP/1.1 201 Created ... diff --git a/docs/guide-ja/runtime-requests.md b/docs/guide-ja/runtime-requests.md index a74830d..4725d41 100644 --- a/docs/guide-ja/runtime-requests.md +++ b/docs/guide-ja/runtime-requests.md @@ -200,3 +200,27 @@ Yii アプリケーションに渡されるからです。 信頼できるプロキシからのリクエストである場合にのみ、`X-ProxyUser-Ip` と `Front-End-Https` ヘッダが受け入れられます。 その場合、前者は `ipHeaders` で構成されているようにユーザの IP を読み出すために使用され、 後者は [[yii\web\Request::getIsSecureConnection()]] の結果を決定するために使用されます。 + +2.0.31 以降、[RFC 7239](https://tools.ietf.org/html/rfc7239) の `Forwarded` ヘッダがサポートされています。 +有効にするためには、ヘッダ名を `secureHeaders` に追加する必要があります。 +あなたのプロキシにそれを設定させることを忘れないで下さい。さもないと、エンド・ユーザが IP とプロトコルを盗み見ることが可能になります。 + +### 解決済みのユーザ IP + +ユーザの IP アドレスが Yii アプリケーション以前に解決済みである場合(例えば、`ngx_http_realip_module` など) は、 +`request` コンポーネントは下記の構成で正しく動作します。 + +```php +'request' => [ + // ... + 'trustedHosts' => [ + '0.0.0.0/0', + ], + 'ipHeaders' => [], +], +``` + +この場合、[[yii\web\Request::userIP|userIP]] の値は `$_SERVER['REMOTE_ADDR']` に等しくなります。 +同時に、HTTP ヘッダから解決されるプロパティも正しく動作します (例えば、[[yii\web\Request::getIsSecureConnection()]])。 + +> 注意: `trustedHosts=['0.0.0.0/0']` の設定は、全ての IP が信頼できることを前提としています。 diff --git a/docs/guide-ja/start-looking-ahead.md b/docs/guide-ja/start-looking-ahead.md index fb893a5..9f0ef20 100644 --- a/docs/guide-ja/start-looking-ahead.md +++ b/docs/guide-ja/start-looking-ahead.md @@ -27,7 +27,7 @@ Gii をコード生成に使うと、ウェブ開発のプロセスの大部分 * コミュニティ - フォーラム: - IRC チャット: freenode ネットワーク () の #yii チャンネル - - Slack チャンネル: + - Slack チャンネル: - Gitter チャット: - GitHub: - Facebook: