From 1d478bdd14cedb9dce96aca7cf14cd644b4263c8 Mon Sep 17 00:00:00 2001 From: Nobuo Kihara Date: Tue, 19 Jul 2016 21:30:29 +0900 Subject: [PATCH 1/3] framework/messages/ja/yii.php updated [ci skip] --- framework/messages/ja/yii.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/framework/messages/ja/yii.php b/framework/messages/ja/yii.php index 5551c9015b..3ab9d6d09c 100644 --- a/framework/messages/ja/yii.php +++ b/framework/messages/ja/yii.php @@ -36,6 +36,7 @@ return [ 'Please fix the following errors:' => '次のエラーを修正してください :', 'Please upload a file.' => 'ファイルをアップロードしてください。', 'Showing {begin, number}-{end, number} of {totalCount, number} {totalCount, plural, one{item} other{items}}.' => '{totalCount, number} 件中 {begin, number} から {end, number} までを表示しています。', + 'The combination {values} of {attributes} has already been taken.' => '', 'The file "{file}" is not an image.' => 'ファイル "{file}" は画像ではありません。', 'The file "{file}" is too big. Its size cannot exceed {formattedLimit}.' => 'ファイル "{file}" は大きすぎます。サイズが {formattedLimit} を超えてはいけません。', 'The file "{file}" is too small. Its size cannot be smaller than {formattedLimit}.' => 'ファイル "{file}" は小さすぎます。サイズが {formattedLimit} より小さくてはいけません。', @@ -48,6 +49,7 @@ return [ 'The verification code is incorrect.' => '検証コードが正しくありません。', 'Total {count, number} {count, plural, one{item} other{items}}.' => '合計 {count} 件。', 'Unable to verify your data submission.' => 'データ送信を検証できませんでした。', + 'Unknown alias: -{name}' => '不明なエイリアス: -{name}', 'Unknown option: --{name}' => '不明なオプション: --{name}', 'Update' => '更新', 'View' => '閲覧', From 2afdbfd25f6738483e4ec86dae0c94b9a03494cc Mon Sep 17 00:00:00 2001 From: Nobuo Kihara Date: Tue, 19 Jul 2016 21:31:07 +0900 Subject: [PATCH 2/3] docs/guide-ja updated [ci skip] --- docs/guide-ja/concept-di-container.md | 32 +++++++++++++++++++++++ docs/guide-ja/db-migrations.md | 2 +- docs/guide-ja/rest-response-formatting.md | 27 +++++++++++++++++++ docs/guide-ja/start-installation.md | 30 ++++++++++++++++----- docs/guide-ja/structure-entry-scripts.md | 1 + docs/guide-ja/structure-widgets.md | 4 +++ 6 files changed, 89 insertions(+), 7 deletions(-) diff --git a/docs/guide-ja/concept-di-container.md b/docs/guide-ja/concept-di-container.md index 73840a8624..3bf03b2118 100644 --- a/docs/guide-ja/concept-di-container.md +++ b/docs/guide-ja/concept-di-container.md @@ -12,6 +12,7 @@ Yii は [[yii\di\Container]] クラスを通して DI コンテナの機能を提供します。これは、次の種類の依存注入をサポートしています: * コンストラクタ·インジェクション +* メソッド・インジェクション * セッター/プロパティ·インジェクション * PHP コーラブル·インジェクション @@ -38,6 +39,37 @@ $foo = new Foo($bar); ``` +### メソッド・インジェクション + +通常、クラスの依存はコンストラクタに渡されて、そのクラスの内部でライフサイクル全体にわたって利用可能になります。 +メソッド・インジェクションを使うと、クラスのメソッドの一つだけに必要となる依存、例えば、コンストラクタに渡すことが不可能であったり、大半のユースケースにおいてはオーバーヘッドが大きすぎるような依存を提供することが可能になります。 + +クラスのメソッドを次の例の `doSomething` メソッドのように定義することが出来ます。 + +```php +class MyClass extends \yii\base\Component +{ + public function __construct(/* 軽量の依存はここに */, $config = []) + { + // ... + } + + public function doSomething($param1, \my\heavy\Dependency $something) + { + // $something を使って何かをする + } +} +``` + +あなた自身で `\my\heavy\Dependency` のインスタンスを渡すか、次のように +[[yii\di\Container::invoke()]] を使えば、このメソッドを呼ぶことが出来ます。 + +```php +$obj = new MyClass(/*...*/); +Yii::$container->invoke([$obj, 'doSomethingWithHeavyDependency'], ['param1' => 42]); // $something は DI コンテナによって提供される +``` + + ### セッター/プロパティ·インジェクション セッター/プロパティ·インジェクションは、[構成情報](concept-configurations.md) を通してサポートされます。 diff --git a/docs/guide-ja/db-migrations.md b/docs/guide-ja/db-migrations.md index 7713b54c99..71c0250c03 100644 --- a/docs/guide-ja/db-migrations.md +++ b/docs/guide-ja/db-migrations.md @@ -176,7 +176,7 @@ class m150101_185401_create_news_table extends Migration バージョン 2.0.7 以降では、マイグレーション・コンソールがマイグレーションを生成する便利な方法を提供しています。 -マイグレーションの名前が特定の形式である場合は、生成されるマイグレーション・ファイルに追加のコードが書き込まれます。 +マイグレーションの名前が特別な形式である場合は、生成されるマイグレーション・ファイルに追加のコードが書き込まれます。 例えば、`create_xxx_table` や `drop_xxx_table` であれば、テーブルの作成や削除をするコードが追加されます。 以下で、この機能の全ての変種を説明します。 diff --git a/docs/guide-ja/rest-response-formatting.md b/docs/guide-ja/rest-response-formatting.md index 2b816c1c51..2acc5a83d2 100644 --- a/docs/guide-ja/rest-response-formatting.md +++ b/docs/guide-ja/rest-response-formatting.md @@ -146,3 +146,30 @@ Content-Type: application/json; charset=UTF-8 } } ``` + +### JSON 出力を制御する + +JSON 形式のレスポンスを生成する [[yii\web\JsonResponseFormatter|JsonResponseFormatter]] クラスは [[yii\helpers\Json|JSON ヘルパ]] を内部的に使用します。 +このフォーマッタはさまざまなオプションによって構成することが可能です。 +例えば、[[yii\web\JsonResponseFormatter::$prettyPrint|$prettyPrint]] オプションは、より読みやすいレスポンスのためのもので、開発時に有用なオプションです。 +また、[[yii\web\JsonResponseFormatter::$encodeOptions|$encodeOptions]] によって JSON エンコーディングの出力を制御することが出来ます。 + +フォーマッタは、以下のように、アプリケーションの [構成情報](concept-configuration.md) の中で、`response` アプリケーション・コンポーネントの [[yii\web\Response::formatters|formatters]] プロパティの中で構成することが出来ます。 + +```php +'response' => [ + // ... + 'formatters' => [ + \yii\web\Response::FORMAT_JSON => [ + 'class' => 'yii\web\JsonResponseFormatter', + 'prettyPrint' => YII_DEBUG, // デバッグモードでは "きれい" な出力を使用 + 'encodeOptions' => JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE, + // ... + ], + ], +], +``` + +[DAO](db-dao.md) データベース・レイヤを使ってデータベースからデータを返す場合は、全てのデータが文字列として表されます。 +しかし、特に数値は JSON では数として表現されなければなりませんので、これは必ずしも期待通りの結果であるとは言えません。 +一方、ActiveRecord レイヤを使ってデータベースからデータを取得する場合は、数値カラムの値は、[[yii\db\ActiveRecord::populateRecord()]] においてデータベースからデータが取得される際に、整数に変換されます。 diff --git a/docs/guide-ja/start-installation.md b/docs/guide-ja/start-installation.md index 0439ac17c2..7b6e1aa3ea 100644 --- a/docs/guide-ja/start-installation.md +++ b/docs/guide-ja/start-installation.md @@ -21,7 +21,9 @@ Yii はもう一つ、[アドバンストプロジェクトテンプレート](h Composer によるインストール --------------------------- -まだ Composer をインストールしていない場合は、[getcomposer.org](https://getcomposer.org/download/) の指示に従ってインストールすることが出来ます。 +### Composer をインストールする + +まだ Composer をインストールしていない場合は、[getcomposer.org]() の指示に従ってインストールすることが出来ます。 Linux や Mac OS X では、次のコマンドを実行します。 ```bash @@ -31,11 +33,25 @@ mv composer.phar /usr/local/bin/composer Windows では、[Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe) をダウンロードして実行します。 -何か問題が生じたときや、Composer の使い方に関してもっと学習したいときは、[Composer ドキュメント](https://getcomposer.org/doc/) を参照してください。 +何か問題が生じたときは、[Composer ドキュメントのトラブル・シューティングの節](https://getcomposer.org/doc/articles/troubleshooting.md) を参照してください。 +Composer は初めてだという場合は、少なくとも、Composer ドキュメントの [基本的な使い方の節](https://getcomposer.org/doc/01-basic-usage.md) も参照することを推奨します。 + +このガイドでは、composer のコマンドの全ては、あなたが composer を [グローバル](https://getcomposer.org/doc/00-intro.md#globally) にインストールし、`composer` コマンドとして使用できるようにしているものと想定しています。 +そうではなく、ローカル・ディレクトリにある `composer.phar` を使おうとする場合は、例に出てくるコマンドをそれに合せて修正しなければなりません。 以前に Composer をインストールしたことがある場合は、確実に最新のバージョンを使うようにしてください。 Composer は `composer self-update` コマンドを実行してアップデートすることが出来ます。 +> Note: Yii のインストールを実行する際に、Composer は大量の情報を Github API から要求する必要が生じます。 +> リクエストの量は、あなたのアプリケーションが持つ依存の数に依存しますが、**Github API レート制限** より大きくなることがあり得ます。 +> この制限にかかった場合、Composer は Github API トークンを取得するために、あなたの Github ログイン認証情報を要求するでしょう。 +> 高速な接続においては、Composer が対処できるよりも早い段階でこの制限にかかることもありますので、 +> Yii のインストールの前に、このアクセス・トークンを構成することを推奨します。 +> アクセス・トークンの構成の仕方については、[Github API トークンに関する Composer ドキュメント](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens) +> の指示を参照して下さい。 + +### Yii をインストールする + Composer がインストールされたら、ウェブからアクセスできるフォルダで下記のコマンドを実行することによって Yii をインストールすることが出来ます。 ```bash @@ -46,12 +62,14 @@ composer create-project --prefer-dist yiisoft/yii2-app-basic basic 最初のコマンドは [composer アセットプラグイン](https://github.com/francoispluchino/composer-asset-plugin/) をインストールします。 これにより、Composer を通じて bower と npm の依存パッケージを管理することが出来るようになります。 このコマンドは一度だけ実行すれば十分です。 -第二のコマンドは `basic` という名前のディレクトリに Yii をインストールします。 +第二のコマンドは `basic` という名前のディレクトリに Yii の最新の安定版をインストールします。 必要なら別のディレクトリ名を選ぶことも出来ます。 -> Note: インストール実行中に Composer が あなたの Github のログイン認証情報を求めることがあるかも知れません。 -> これは、Comoser が依存パッケージの情報を Github から読み出すために十分な API レートを必要とするためで、普通にあることです。 -> 詳細については、[Composer ドキュメント](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens) を参照してください。 +> Info: `composer create-project` コマンドが失敗するときは、composer asset plugin が正しくインストール出来ているかどうかを確認して下さい。 +> `composer global show` を実行することで確認することが出来ます。このコマンドの出力に `fxp/composer-asset-plugin` のエントリが含まれていなければなりません。. +> よくあるエラーについては、[Composer ドキュメントのトラブル・シューティングの節](https://getcomposer.org/doc/articles/troubleshooting.md) +> も参照して下さい。 +> エラーを修正した後は、`basic` ディレクトリの中で `composer update` を実行して、中断されたインストールを再開することが出来ます。 > Tip: Yii の最新の開発バージョンをインストールしたい場合は、[stability option](https://getcomposer.org/doc/04-schema.md#minimum-stability) を追加した次のコマンドを代りに使うことが出来ます。 > diff --git a/docs/guide-ja/structure-entry-scripts.md b/docs/guide-ja/structure-entry-scripts.md index 08c599d451..4503fe4f11 100644 --- a/docs/guide-ja/structure-entry-scripts.md +++ b/docs/guide-ja/structure-entry-scripts.md @@ -61,6 +61,7 @@ $config = require(__DIR__ . '/../config/web.php'); */ defined('YII_DEBUG') or define('YII_DEBUG', true); +defined('YII_ENV') or define('YII_ENV', 'dev'); // Composer のオートローダを登録 require(__DIR__ . '/vendor/autoload.php'); diff --git a/docs/guide-ja/structure-widgets.md b/docs/guide-ja/structure-widgets.md index ba89912ed4..a1b62733c6 100644 --- a/docs/guide-ja/structure-widgets.md +++ b/docs/guide-ja/structure-widgets.md @@ -67,6 +67,10 @@ use yii\helpers\Html; [[yii\base\Widget::widget()]] がウィジェットのレンダリング結果を返すのとは違って、[[yii\base\Widget::begin()]] メソッドがウィジェットのインスタンスを返すことに注意してください。 返されたウィジェットのインスタンスを使って、ウィジェットのコンテントを構築することが出来ます。 +> Note: いくつかのウィジェットは、[[yii\base\Widget::end()]] が呼ばれるときに内包されるコンテンツを調整するため、[出力バッファリング](http://php.net/manual/ja/book.outcontrol.php) を使用します。 +> この理由から、[[yii\base\Widget::begin()]] と [[yii\base\Widget::end()]] の呼び出しは、同じビューファイルの中で発生するものと想定されています。 +> この規則に従わない場合は、予期しない出力結果が生じ得ます。 + ### グローバルなデフォルトを構成する From f6b1b2a0148d1dec2529988fe57db506fa9ab889 Mon Sep 17 00:00:00 2001 From: Nobuo Kihara Date: Tue, 19 Jul 2016 21:31:29 +0900 Subject: [PATCH 3/3] docs/internals-ja updated [ci skip] --- docs/internals-ja/core-code-style.md | 4 ++-- docs/internals-ja/release.md | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/internals-ja/core-code-style.md b/docs/internals-ja/core-code-style.md index 70ffe74ade..96bd761d18 100644 --- a/docs/internals-ja/core-code-style.md +++ b/docs/internals-ja/core-code-style.md @@ -239,7 +239,7 @@ $arr = [ ```php $config = [ - 'name' => 'Yii', + 'name' => 'Yii', 'options' => ['usePHP' => true], ]; ``` @@ -474,7 +474,7 @@ public function getEventHandlers($name) - 定数へのアクセスには `self` を使わなければなりません: `self::MY_CONSTANT` - private な静的プロパティへのアクセスには `self` を使わなければなりません: `self::$_events` -- 再帰呼出しにおいて、拡張クラスの実装ではなく、現在のクラスの実装を再び呼び出したいときには、`self` を使うことが許可されます。 +- 再帰呼出しにおいて、拡張クラスの実装ではなく、現在のクラスの実装を再び呼び出したいときなど、合理的な理由がある場合には、`self` を使うことが許可されます。 ### 「何かをするな」を示す値 diff --git a/docs/internals-ja/release.md b/docs/internals-ja/release.md index cdfce88736..248efcc2a4 100644 --- a/docs/internals-ja/release.md +++ b/docs/internals-ja/release.md @@ -26,7 +26,17 @@ リリースコマンドは、[Git ワークフローのドキュメント](git-workflow.md#extensions) で紹介されている開発環境に依存しています。 すなわち、アプリケーションテンプレートは `/apps/` の下に配置されていなければならず、 エクステンションは `/extensions/` の下に配置されていなければなりません。 -`dev/app` コマンドを使うと、この構成がデフォルトで作成されます。 +この構成は `dev/app` および `dev/ext` のコマンドを使って作成することが推奨されます。 + +例えば、エクステンションのインストールは: + + ./build/build dev/ext authclient + +アプリケーションは: + + ./build/build dev/app basic + +このインストール方法によって、エクステンションが現在のレポジトリの状態と同じフレームワークコードを使用する事を保証することが出来ます。 ### バージョンの概要