Commit 454e4c81 by Qiang Xue

Merge pull request #6990 from softark/docs-guide-ja-start-refined

docs/guide-ja/start-* refined [ci skip]
parents 037ee2fd acf34f3f
...@@ -74,7 +74,7 @@ All Rights Reserved. ...@@ -74,7 +74,7 @@ All Rights Reserved.
データベースの取り扱い データベースの取り扱い
---------------------- ----------------------
* [データベースアクセスオブジェクト](db-dao.md): データベースへの接続、基本的なクエリ、トランザクション、および、スキーマ操作 * [データアクセスオブジェクト](db-dao.md): データベースへの接続、基本的なクエリ、トランザクション、および、スキーマ操作
* [クエリビルダ](db-query-builder.md): シンプルな抽象レイヤを使ってデータベースに対してクエリを行う * [クエリビルダ](db-query-builder.md): シンプルな抽象レイヤを使ってデータベースに対してクエリを行う
* [アクティブレコード](db-active-record.md): アクティブレコード ORM、レコードの読み出しと操作、リレーションの定義 * [アクティブレコード](db-active-record.md): アクティブレコード ORM、レコードの読み出しと操作、リレーションの定義
* [マイグレーション](db-migrations.md): チーム開発環境においてデータベースにバージョンコントロールを適用 * [マイグレーション](db-migrations.md): チーム開発環境においてデータベースにバージョンコントロールを適用
......
...@@ -15,10 +15,9 @@ ...@@ -15,10 +15,9 @@
具体的に言えば、DB クライアントツールを用いてデータベースを作成する方法と、SQL 文を実行する方法を知っていなければなりません。 具体的に言えば、DB クライアントツールを用いてデータベースを作成する方法と、SQL 文を実行する方法を知っていなければなりません。
データベースを準備する<a name="preparing-database"></a> データベースを準備する <a name="preparing-database"></a>
---------------------- ----------------------
まず初めに、`yii2basic` という名前のデータベースを作成してください。このデータベースからアプリケーションにデータを読み出すことになります。 まず初めに、`yii2basic` という名前のデータベースを作成してください。このデータベースからアプリケーションにデータを読み出すことになります。
Yii は多数のデータベース製品に対するサポートを内蔵していますので、作成するデータベースは、SQLite、MySQL、PosttreSQL、MSSQL または Oracle から選ぶことが出来ます。 Yii は多数のデータベース製品に対するサポートを内蔵していますので、作成するデータベースは、SQLite、MySQL、PosttreSQL、MSSQL または Oracle から選ぶことが出来ます。
以下の説明では、話を単純にするために、MySQL を前提とします。 以下の説明では、話を単純にするために、MySQL を前提とします。
...@@ -48,14 +47,14 @@ INSERT INTO `country` VALUES ('US','United States',278357000); ...@@ -48,14 +47,14 @@ INSERT INTO `country` VALUES ('US','United States',278357000);
この時点で、あなたは `yii2basic` という名前のデータベースを持ち、その中に三つのカラムを持つ `country` というテーブルがあり、`country` テーブルは 10 行のデータを持っている、ということになります。 この時点で、あなたは `yii2basic` という名前のデータベースを持ち、その中に三つのカラムを持つ `country` というテーブルがあり、`country` テーブルは 10 行のデータを持っている、ということになります。
DB 接続を構成する<a name="configuring-db-connection"></a> DB 接続を構成する <a name="configuring-db-connection"></a>
----------------- -----------------
先に進む前に、[PDO](http://www.php.net/manual/en/book.pdo.php) PHP 拡張および使用しているデータベースの PDO ドライバ 先に進む前に、[PDO](http://www.php.net/manual/en/book.pdo.php) PHP 拡張および使用しているデータベースの PDO ドライバ (例えば、MySQL のための `pdo_mysql`) の両方をインストール済みであることを確認してください。
(例えば、MySQL のための `pdo_mysql`) の両方をインストール済みであることを確認してください。
アプリケーションがリレーショナルデータベースを使う場合、これは基本的な必要条件です。 アプリケーションがリレーショナルデータベースを使う場合、これは基本的な必要条件です。
これらがインストール済みなら、`config/db.php` というファイルを開いて、あなたのデータベースに適合するようにパラメータを変更してください。デフォルトでは、このファイルは下記の記述を含んでいます。 これらがインストール済みなら、`config/db.php` というファイルを開いて、あなたのデータベースに適合するようにパラメータを変更してください。
デフォルトでは、このファイルは下記の記述を含んでいます。
```php ```php
<?php <?php
...@@ -69,22 +68,20 @@ return [ ...@@ -69,22 +68,20 @@ return [
]; ];
``` ```
この `config/db.php` というファイルは典型的なファイルベースの [構成情報](concept-configurations.md) のツールです。 この `config/db.php` というファイルは典型的なファイルベースの [構成情報](concept-configurations.md) ツールです。
この構成情報ファイルが [[yii\db\Connection]] インスタンスの作成と初期化に必要なパラメータを規定します。そして、 この構成情報ファイルが、背後のデータベースに対する SQL クエリの実行を可能にする [[yii\db\Connection]] インスタンスの作成と初期化に必要なパラメータを指定するものです。
[[yii\db\Connection]] インスタンスを通じて、背後のデータベースに対する SQL クエリを実行することが出来るようになります。
上記のようにして構成された DB 接続は、アプリケーションコードの中で `Yii::$app->db` という式でアクセスすることが出来ます。 上記のようにして構成された DB 接続は、アプリケーションコードの中で `Yii::$app->db` という式でアクセスすることが出来ます。
> Info|情報: `config/db.php` は、メインのアプリケーション構成情報ファイルである `config/web.php` にインクルードされます。 > Info|情報: `config/db.php` は、メインのアプリケーション構成情報ファイルである `config/web.php` によってインクルードされます。
この `config/web.php`[アプリケーション](structure-applications.md) インスタンスが初期化される仕方を規定します。 この `config/web.php`[アプリケーション](structure-applications.md) インスタンスが初期化される仕方を指定するものです。
詳しい情報については、[構成情報](concept-configurations.md) の節を参照してください。 詳しい情報については、[構成情報](concept-configurations.md) の節を参照してください。
アクティブレコードを作成する<a name="creating-active-record"></a> アクティブレコードを作成する <a name="creating-active-record"></a>
---------------------------- ----------------------------
`country` テーブルの中のデータを表現し取得するために、[アクティブレコード](db-active-record.md) から派生した `country` テーブルの中のデータを表現し取得するために、[アクティブレコード](db-active-record.md) から派生した `Country` という名前のクラスを作成し、それを `models/Country.php` というファイルに保存します。
`Country` という名前のクラスを作成し、それを `models/Country.php` というファイルに保存します。
```php ```php
<?php <?php
...@@ -127,10 +124,10 @@ $country->save(); ...@@ -127,10 +124,10 @@ $country->save();
もう一つの方法として、[データアクセスオブジェクト](db-dao.md) と呼ばれる、より低レベルなデータアクセス方法を使ってデータベースを操作することも出来ます。 もう一つの方法として、[データアクセスオブジェクト](db-dao.md) と呼ばれる、より低レベルなデータアクセス方法を使ってデータベースを操作することも出来ます。
アクションを作成する<a name="creating-action"></a> アクションを作成する <a name="creating-action"></a>
-------------------- --------------------
国データをエンドユーザに見えるようにするために、新しいアクションを作成する必要があります。 国データをエンドユーザに公開するために、新しいアクションを作成する必要があります。
これまでの節でしたように `site` コントローラの中に新しいアクションを置くのではなく、国データに関係する全てのアクションに限定した新しいコントローラを作成する方が理にかなうでしょう。 これまでの節でしたように `site` コントローラの中に新しいアクションを置くのではなく、国データに関係する全てのアクションに限定した新しいコントローラを作成する方が理にかなうでしょう。
この新しいコントローラを `CountryController` と名付けます。そして、下記に示すように、`index` アクションをその中に作成します。 この新しいコントローラを `CountryController` と名付けます。そして、下記に示すように、`index` アクションをその中に作成します。
...@@ -178,10 +175,11 @@ class CountryController extends Controller ...@@ -178,10 +175,11 @@ class CountryController extends Controller
* クエリによって表現される SQL 文に `offset` 句と `limit` 句をセットして、一度に一ページ分のデータだけ (1ページ最大5行) を返すようにします。 * クエリによって表現される SQL 文に `offset` 句と `limit` 句をセットして、一度に一ページ分のデータだけ (1ページ最大5行) を返すようにします。
* 次の項で説明されるように、一連のページボタンからなるページャをビューに表示するために使われます。 * 次の項で説明されるように、一連のページボタンからなるページャをビューに表示するために使われます。
コードの最後で、`index` アクションは `index` と言う名前のビューをレンダリングしていますが、このとき、国データはもちろん、そのページ付け情報もビューに渡されます。 コードの最後で、`index` アクションは `index` と言う名前のビューをレンダリングしています。
このとき、国データだけでなく、そのページネーション情報がビューに渡されます。
ビューを作成する<a name="creating-view"></a> ビューを作成する <a name="creating-view"></a>
---------------- ----------------
最初に、`views` ディレクトリの下に `country` という名前のサブディレクトリを作ってください。 最初に、`views` ディレクトリの下に `country` という名前のサブディレクトリを作ってください。
...@@ -208,11 +206,11 @@ use yii\widgets\LinkPager; ...@@ -208,11 +206,11 @@ use yii\widgets\LinkPager;
ビューは国データの表示に関連して二つの部分に分けられます。 ビューは国データの表示に関連して二つの部分に分けられます。
最初の部分では、提供された国データがたどられて、HTML の順序無しリストとしてレンダリングされます。 最初の部分では、提供された国データがたどられて、HTML の順序無しリストとしてレンダリングされます。
第二の部分では、アクションから渡されたページ付け情報を使って、[[yii\widgets\LinkPager]] ウィジェットがレンダリングされます。 第二の部分では、アクションから渡されたページネーション情報を使って、[[yii\widgets\LinkPager]] ウィジェットがレンダリングされます。
`LinkPager` ウィジェットはページボタンのリストを表示します。ボタンのどれかをクリックすると、対応するページの国データが更新表示されます。 `LinkPager` ウィジェットはページボタンのリストを表示します。ボタンのどれかをクリックすると、対応するページの国データが更新表示されます。
試してみる<a name="trying-it-out"></a> 試してみる <a name="trying-it-out"></a>
---------- ----------
上記のコード全てがどのように動作するかを見るために、ブラウザで下記の URL をアクセスします。 上記のコード全てがどのように動作するかを見るために、ブラウザで下記の URL をアクセスします。
...@@ -244,7 +242,7 @@ http://hostname/index.php?r=country/index&page=2 ...@@ -244,7 +242,7 @@ http://hostname/index.php?r=country/index&page=2
こうして、新しい国のクエリは `LIMIT 5 OFFSET 5` という句を持ち、次の5つの国を表示のために返すことになります。 こうして、新しい国のクエリは `LIMIT 5 OFFSET 5` という句を持ち、次の5つの国を表示のために返すことになります。
まとめ<a name="summary"></a> まとめ <a name="summary"></a>
------ ------
この節では、データベースを扱う方法を学びました。 この節では、データベースを扱う方法を学びました。
......
この先を見通す 先を見通す
============== ==========
「はじめよう」の章全体を読み通したなら、いまやあなたは、完全な Yii のアプリケーションを作成したことがある、と言うことが出来ます。 「はじめよう」の章全体を読み通したなら、いまやあなたは、完全な Yii のアプリケーションを作成したことがある、ということになります。
その過程で、あなたは HTML フォームを通じてユーザからデータを取得することや、データベースからデータを取得すること、また、ページ付けをしてデータを表示することなど、必要とされることが多いいくつかの機能を実装する方法を学びました。 その過程で、あなたは必要とされることが多いいくつかの機能、例えば、HTML フォームを通じてユーザからデータを取得することや、データベースからデータを取得すること、また、ページ付けをしてデータを表示することなどを実装する方法を学びました。
また、[Gii](tool-gii.md) を使ってコードを自動的に生成する方法も学びました。 また、[Gii](tool-gii.md) を使ってコードを自動的に生成する方法も学びました。
Gii をコード生成に使うと、ウェブ開発のプロセスの大部分が、いくつかのフォームに入力していくだけの簡単な仕事になります。 Gii をコード生成に使うと、ウェブ開発のプロセスの大部分が、いくつかのフォームに入力していくだけの簡単な仕事になります。
...@@ -10,9 +10,8 @@ Gii をコード生成に使うと、ウェブ開発のプロセスの大部分 ...@@ -10,9 +10,8 @@ Gii をコード生成に使うと、ウェブ開発のプロセスの大部分
* ドキュメント * ドキュメント
- [決定版ガイド](http://www.yiiframework.com/doc-2.0/guide-README.html): - [決定版ガイド](http://www.yiiframework.com/doc-2.0/guide-README.html):
Definitive(決定的な) という名前が示すように、このガイドは Yii がどのように動作すべきものかを正確に記述し、 名前が示すように、このガイドは Yii がどのように動作すべきものかを正確に記述し、Yii を使用するについての全般的な手引きを提供するものです。
Yii を使用するについての全般的な手引きを提供するものです。 これは唯一の最も重要な Yii のチュートリアルであり、Yii のコードを少しでも書く前にあなたはこれを読まなければなりません。
これは唯一最重要な Yii のチュートリアルであり、Yii のコードを少しでも書く前に読むべきものです。
- [クラスリファレンス](http://www.yiiframework.com/doc-2.0/index.html): - [クラスリファレンス](http://www.yiiframework.com/doc-2.0/index.html):
これは Yii によって提供される全てのクラスの使用法を記述しています。 これは Yii によって提供される全てのクラスの使用法を記述しています。
主として、コードを書いている時に、特定のクラス、メソッド、プロパティについて理解したい場合に読まれるべきものです。 主として、コードを書いている時に、特定のクラス、メソッド、プロパティについて理解したい場合に読まれるべきものです。
...@@ -20,8 +19,7 @@ Gii をコード生成に使うと、ウェブ開発のプロセスの大部分 ...@@ -20,8 +19,7 @@ Gii をコード生成に使うと、ウェブ開発のプロセスの大部分
- [Wiki の記事](http://www.yiiframework.com/wiki/?tag=yii2): - [Wiki の記事](http://www.yiiframework.com/wiki/?tag=yii2):
Wiki の記事は、Yii のユーザが自身の経験に基づいて書いたものです。 Wiki の記事は、Yii のユーザが自身の経験に基づいて書いたものです。
ほとんどの記事は、料理本のレシピのように書かれており、特定の問題を Yii を使って解決する方法を示しています。 ほとんどの記事は、料理本のレシピのように書かれており、特定の問題を Yii を使って解決する方法を示しています。
これらの記事の品質は決定版ガイドほどには良くないかもしれませんが、 これらの記事の品質は決定版ガイドほどには良くないかもしれませんが、より広範なトピックをカバーしていることと、たいていは即座に使えるソリューションを提供してくれることにおいて有用なものです。
より広範なトピックをカバーしていることと、たいていは即座に使えるソリューションを提供してくれることにおいて有用なものです。
- [書籍](http://www.yiiframework.com/doc/) - [書籍](http://www.yiiframework.com/doc/)
* [エクステンション](http://www.yiiframework.com/extensions/): * [エクステンション](http://www.yiiframework.com/extensions/):
Yii は、ユーザによって作られた数千におよぶエクステンションのライブラリを誇りとしています。 Yii は、ユーザによって作られた数千におよぶエクステンションのライブラリを誇りとしています。
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment