From b4607001a9f4dc7384d0138c89d2e6e1f6306c3c Mon Sep 17 00:00:00 2001 From: Nobuo Kihara Date: Tue, 11 Nov 2014 07:25:37 +0900 Subject: [PATCH] docs/guide-ja/structure-assets.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - prepared for translation [ci skip] - docs/guide-ja/structure-widgets.md - changed "コンテント" to "コンテンツ" [ci skip] - docs/guide-ja/* - changed "ドキュメンテーション" to "ドキュメント" [ci skip] - docs/guide-ja/intro-yii.md - inserted the Chinese character "易" [ci skip] - docs/guide-ja/structure-assets.md - WIP [ci skip] - docs/guide-ja/structure-assets.md - completed [ci skip] close #6037 --- docs/guide-ja/README.md | 4 +- docs/guide-ja/intro-yii.md | 2 +- docs/guide-ja/start-looking-ahead.md | 2 +- docs/guide-ja/structure-assets.md | 638 +++++++++++++++++++++++++++++++++++ docs/guide-ja/structure-widgets.md | 14 +- 5 files changed, 649 insertions(+), 11 deletions(-) create mode 100644 docs/guide-ja/structure-assets.md diff --git a/docs/guide-ja/README.md b/docs/guide-ja/README.md index 61c191b..024dbcc 100644 --- a/docs/guide-ja/README.md +++ b/docs/guide-ja/README.md @@ -1,7 +1,7 @@ Yii 2.0 公式ガイド ================== -このチュートリアルは [Yii ドキュメンテーション規約](http://www.yiiframework.com/doc/terms/) の下に +このチュートリアルは [Yii ドキュメント規約](http://www.yiiframework.com/doc/terms/) の下に リリースされています。 All Rights Reserved. @@ -145,7 +145,7 @@ RESTful ウェブサービス * [デバッグツールバーとデバッガ](tool-debugger.md) * [Gii を使ってコードを生成する](tool-gii.md) -* **TBD** [API ドキュメンテーションを生成する](tool-api-doc.md) +* **TBD** [API ドキュメントを生成する](tool-api-doc.md) テスト diff --git a/docs/guide-ja/intro-yii.md b/docs/guide-ja/intro-yii.md index 800d859..caa4cf9 100644 --- a/docs/guide-ja/intro-yii.md +++ b/docs/guide-ja/intro-yii.md @@ -2,7 +2,7 @@ Yii とは何か ============ Yii は現代的なウェブアプリケーションを迅速に開発するための、高性能な、コンポーネントベースの PHP フレームワークです。 -Yii という名前 (`イー` すなわち `[ji:]` と発音します) は、中国語で「単純かつ進展的」であることを意味します。 +Yii という名前 (`イー` すなわち `[ji:]` と発音します) は、中国語では「易」であり、「シンプルかつ進化的」であることを意味します。 また **Yes It Is** の省略形であると考えることも出来ます。 diff --git a/docs/guide-ja/start-looking-ahead.md b/docs/guide-ja/start-looking-ahead.md index 0165cb6..28aef8f 100644 --- a/docs/guide-ja/start-looking-ahead.md +++ b/docs/guide-ja/start-looking-ahead.md @@ -9,7 +9,7 @@ Gii をコード生成に使うと、ウェブ開発のプロセスの大部分 この節では、Yii フレームワークを使うときの生産性を更に高めるために利用できるリソースについてまとめます。 -* ドキュメンテーション +* ドキュメント - [公式ガイド](http://www.yiiframework.com/doc-2.0/guide-README.html): Definitive(最も確実な) という名前が示すように、このガイドは Yii がどのように動作すべきものかを正確に記述し、 Yii を使用するについての全般的な手引きを提供するものです。 diff --git a/docs/guide-ja/structure-assets.md b/docs/guide-ja/structure-assets.md new file mode 100644 index 0000000..714eaf9 --- /dev/null +++ b/docs/guide-ja/structure-assets.md @@ -0,0 +1,638 @@ +アセット +======== + +Yii では、アセットは、ウェブページで参照できるファイルを意味します。CSS ファイルであったり、JavaScript ファイルであったり、 +画像やビデオのファイルであったりします。アセットはウェブでアクセス可能なディレクトリに配置され、 +ウェブサーバによって直接に提供されます。 + +たいていの場合、アセットはプログラム的に管理する方が望ましいものです。例えば、ページの中で [[yii\jui\DatePicker]] +ウィジェットを使うとき、ウィジェットが必要な CSS と JavaScript のファイルを自動的にインクルードします。あなたに対して、 +手作業で必要なファイルを探してインクルードするように要求したりはしません。そして、ウィジェットを新しいバージョンに +アップグレードしたときは、ウィジェットが自動的に新しいバージョンのアセットファイルを使用するようになります。 +このチュートリアルでは、Yii によって提供される強力なアセット管理機能について説明します。 + + +## アセットバンドル + +Yii はアセットを *アセットバンドル* を単位として管理します。アセットバンドルは、単にあるディレクトリの下に集められた +一群のアセットに過ぎません。[ビュー](structure-views.md) の中でアセットバンドルを登録すると、バンドルの中の CSS や +JavaScript のファイルがレンダリングされるウェブページに挿入されます。 + + +## アセットバンドルを定義する + +アセットバンドルは [[yii\web\AssetBundle]] から拡張された PHP クラスとして定義されます。バンドルの名前は、対応する PHP +クラスの完全修飾名 (先頭のバックスラッシュを除く) です。アセットバンドルクラスは [オートロード可能](concept-autoloading.md) +でなければなりません。アセットバンドルクラスは、通常、アセットがどこに置かれているか、バンドルがどういう CSS や JavaScript +のファイルを含んでいるか、そして、バンドルが他のバンドルにどのように依存しているかを定義します。 + +以下のコードは [ベーシックアプリケーションテンプレート](start-installation.md) によって使用されているメインのアセットバンドルを定義するものです: + +```php + + +アセットは、配置場所を基準にして、次のように分類することが出来ます: + +* ソースアセット: アセットファイルは、ウェブ経由で直接にアクセスすることが出来ない PHP ソースコードと一緒に配置されています。 + ページの中でソースアセットを使用するためには、ウェブディレクトリにコピーして、いわゆる発行されたアセットに変換しなければなりません。 + このプロセスは、すぐ後で詳しく説明しますが、*アセット発行* と呼ばれます。 +* 発行されたアセット: アセットファイルはウェブディレクトリに配置されており、したがってウェブ経由で直接にアクセスすることが出来ます。 +* 外部アセット: アセットファイルは、あなたのウェブアプリケーションをホストしているのとは別のウェブサーバ上に配置されています。 + +アセットバンドルクラスを定義するときに、[[yii\web\AssetBundle::sourcePath|sourcePath]] プロパティを指定した場合は、 +相対パスを使ってリストに挙げられたアセットは全てソースアセットであると見なされます。このプロパティを指定しなかった場合は、 +アセットは発行されたアセットであることになります (したがって、[[yii\web\AssetBundle::basePath|basePath]] と +[[yii\web\AssetBundle::baseUrl|baseUrl]] を指定して、アセットがどこに配置されているかを Yii に知らせなければなりません)。 + +アプリケーションに属するアセットは、不要なアセット発行プロセスを避けるために、ウェブディレクトリに置くことが推奨されます。 +前述の例において `AppAsset` が [[yii\web\AssetBundle::sourcePath|sourcePath]] ではなく [[yii\web\AssetBundle::basePath|basePath]] +を指定しているのは、これが理由です。 + +[エクステンション](structure-extensions.md) の場合は、アセットがソースコードと一緒にウェブからアクセス出来ないディレクトリに +配置されているため、アセットバンドルクラスを定義するときには [[yii\web\AssetBundle::sourcePath|sourcePath]] プロパティを +指定しなければなりません。 + +> Note|注意: `@webroot/assets` を [[yii\web\AssetBundle::sourcePath|ソースパス]] として使ってはいけません。 + このディレクトリは、既定では、[[yii\web\AssetManager|アセットマネージャ]] がソースの配置場所から発行されたアセットファイルを + 保存する場所として使われます。このディレクトリの中のファイルはすべて一時的なものと見なされており、削除されることがあります。 + + +### アセットの依存関係 + +ウェブページに複数の CSS や JavaScript ファイルをインクルードするときは、オーバーライドの問題を避けるために、 +一定の順序に従わなければなりません。例えば、ウェブページで jQuery UI ウィジェットを使おうとするときは、jQuery JavaScript +ファイルが jQuery UI JavaScript ファイルより前にインクルードされることを保証しなければなりません。 +このような順序付けをアセット間の依存関係と呼びます。 + +アセットの依存関係は、主として、[[yii\web\AssetBundle::depends]] プロパティによって指定されます。`AppAsset` の例では、 +このアセットバンドルは他の二つのアセットバンドル、すなわち、[[yii\web\YiiAsset]] と [[yii\bootstrap\BootstrapAsset]] に依存しています。 +このことは、`AppAsset` の CSS と JavaScript ファイルが、依存している二つのアセットバンドルにあるファイルの *後に* +インクルードされることを意味します。 + +アセットの依存関係は中継されます。つまり、バンドル A が B に依存し、B が C に依存していると、A は C にも依存していることになります。 + + +### アセットのオプション + +[[yii\web\AssetBundle::cssOptions|cssOptions]] および [[yii\web\AssetBundle::jsOptions|jsOptions]] のプロパティを指定して、 +CSS と JavaScript ファイルがページにインクルードされる方法をカスタマイズすることが出来ます。これらのプロパティの値は、 +[ビュー](structure-views.md) が CSS と JavaScript ファイルをインクルードするために、[[yii\web\View::registerCssFile()]] および +[[yii\web\View::registerJsFile()]] メソッドを呼ぶときに、それぞれ、オプションとして引き渡されます。 + +> Note|注意: バンドルクラスでセットしたオプションは、バンドルの中の *全て* の CSS/JavaScript ファイルに適用されます。 + いろいろなファイルに別々のオプションを使用したい場合は、別々のアセットバンドルを作成して、個々のバンドルの中では、 + 一組のオプションを使うようにしなければなりません。 + +例えば、IE9 以上のブラウザに対して CSS ファイルを条件的にインクルードするために、次のオプションを使うことが出来ます: + +```php +public $cssOptions = ['condition' => 'lte IE9']; +``` + +こうすると、バンドルの中の CSS ファイルは下記の HTML タグを使ってインクルードされるようになります: + +```html + +``` + +生成された CSS のリンクタグを `