Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
8fb4ce5d
Commit
8fb4ce5d
authored
Nov 28, 2014
by
Alexander Makarov
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6294 from softark/docs-guide-ja-start-revised
Docs guide ja start revised [ci skip]
parents
9e42285f
cdf2ec15
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
154 additions
and
167 deletions
+154
-167
start-databases.md
docs/guide-ja/start-databases.md
+31
-38
start-forms.md
docs/guide-ja/start-forms.md
+30
-31
start-gii.md
docs/guide-ja/start-gii.md
+30
-33
start-hello.md
docs/guide-ja/start-hello.md
+21
-21
start-installation.md
docs/guide-ja/start-installation.md
+26
-24
start-looking-ahead.md
docs/guide-ja/start-looking-ahead.md
+4
-5
start-workflow.md
docs/guide-ja/start-workflow.md
+12
-15
No files found.
docs/guide-ja/start-databases.md
View file @
8fb4ce5d
...
@@ -2,15 +2,14 @@
...
@@ -2,15 +2,14 @@
==================
==================
この節では、
`country`
という名前のデータベーステーブルから読み出した国データを表示する新しいページの作り方を説明します。
この節では、
`country`
という名前のデータベーステーブルから読み出した国データを表示する新しいページの作り方を説明します。
この目的を達するために、データベース接続を構成し、
[
アクティブレコード
](
db-active-record.md
)
クラスを作成し、
この目的を達するために、データベース接続を構成し、
[
アクティブレコード
](
db-active-record.md
)
クラスを作成し、
[
アクション
](
structure-controllers.md
)
を定義し、そして
[
ビュー
](
structure-views.md
)
を作成します。
[
アクション
](
structure-controllers.md
)
を定義し、そして
[
ビュー
](
structure-views.md
)
を作成します。
このチュートリアルを通じて、次のことを
する方法を学びます:
このチュートリアルを通じて、次のことを
学びます。
*
DB 接続を構成する
*
DB 接続を構成する
方法
*
アクティブレコードのクラスを定義する
*
アクティブレコードのクラスを定義する
方法
*
アクティブレコードのクラスを使ってデータを検索する
*
アクティブレコードのクラスを使ってデータを検索する
方法
*
改ページを伴う
方法でビューにデータを表示する
*
改ページを伴う
仕方でビューにデータを表示する方法
この節を完了するためには、データベースを使うことについて基本的な知識と経験が無ければならないことに注意してください。
この節を完了するためには、データベースを使うことについて基本的な知識と経験が無ければならないことに注意してください。
具体的に言えば、DB クライアントツールを用いてデータベースを作成する方法と、SQL 文を実行する方法を知っていなければなりません。
具体的に言えば、DB クライアントツールを用いてデータベースを作成する方法と、SQL 文を実行する方法を知っていなければなりません。
...
@@ -21,12 +20,11 @@
...
@@ -21,12 +20,11 @@
まず初めに、
`yii2basic`
という名前のデータベースを作成してください。このデータベースからアプリケーションにデータを読み出すことになります。
まず初めに、
`yii2basic`
という名前のデータベースを作成してください。このデータベースからアプリケーションにデータを読み出すことになります。
作成するデータベースは、SQLite、MySQL、PosttreSQL、MSSQL または Oracle から選んでください。
Yii は多数のデータベース製品に対するサポートを内蔵していますので、作成するデータベースは、SQLite、MySQL、PosttreSQL、MSSQL または Oracle から選ぶことが出来ます。
Yii は多数のデータベース製品に対するサポートを組み込みで持っています。
以下の説明では、話を単純にするために、MySQL を前提とします。
以下の説明では、話を単純にするために、MySQL を前提とします。
次に、データベースに
`country`
という名前のテーブルを作り、いくつかのサンプルデータを挿入します。
次に、データベースに
`country`
という名前のテーブルを作り、いくつかのサンプルデータを挿入します。
そうするために
、次の SQL 文を実行することが出来ます:
そうするために
は、次の SQL 文を実行することが出来ます。
```
sql
```
sql
CREATE
TABLE
`country`
(
CREATE
TABLE
`country`
(
...
@@ -47,8 +45,7 @@ INSERT INTO `country` VALUES ('RU','Russia',146934000);
...
@@ -47,8 +45,7 @@ INSERT INTO `country` VALUES ('RU','Russia',146934000);
INSERT
INTO
`country`
VALUES
(
'US'
,
'United States'
,
278357000
);
INSERT
INTO
`country`
VALUES
(
'US'
,
'United States'
,
278357000
);
```
```
この時点で、あなたは
`yii2basic`
という名前のデータベースを持ち、その中に三つのカラムを持つ
`country`
というテーブルを持っています。
この時点で、あなたは
`yii2basic`
という名前のデータベースを持ち、その中に三つのカラムを持つ
`country`
というテーブルがあり、
`country`
テーブルは 10 行のデータを持っている、ということになります。
そして、
`country`
テーブルは、10 行のデータを持っています。
DB 接続を構成する<a name="configuring-db-connection"></a>
DB 接続を構成する<a name="configuring-db-connection"></a>
...
@@ -58,8 +55,7 @@ DB 接続を構成する<a name="configuring-db-connection"></a>
...
@@ -58,8 +55,7 @@ DB 接続を構成する<a name="configuring-db-connection"></a>
(例えば、MySQL のための
`pdo_mysql`
) の両方をインストール済みであることを確認してください。
(例えば、MySQL のための
`pdo_mysql`
) の両方をインストール済みであることを確認してください。
アプリケーションがリレーショナルデータベースを使う場合、これは基本的な必要条件です。
アプリケーションがリレーショナルデータベースを使う場合、これは基本的な必要条件です。
これらがインストール済みなら、
`config/db.php`
というファイルを開いて、あなたのデータベースに適合するように
これらがインストール済みなら、
`config/db.php`
というファイルを開いて、あなたのデータベースに適合するようにパラメータを変更してください。デフォルトでは、このファイルは下記の記述を含んでいます。
パラメータを変更してください。既定値では、このファイルは下記の記述を含んでいます:
```
php
```
php
<?php
<?php
...
@@ -73,15 +69,15 @@ return [
...
@@ -73,15 +69,15 @@ return [
];
];
```
```
この
`config/db.php`
というファイルは典型的なファイルベースの
[
コンフィギュレーション
](
concept-configurations.md
)
ツールです。
この
`config/db.php`
というファイルは典型的なファイルベースの
[
構成情報
](
concept-configurations.md
)
の
ツールです。
この
コンフィギュレーション
ファイルが
[
[yii\db\Connection
]
] インスタンスの作成と初期化に必要なパラメータを規定します。そして、
この
構成情報
ファイルが
[
[yii\db\Connection
]
] インスタンスの作成と初期化に必要なパラメータを規定します。そして、
[
[yii\db\Connection
]
] インスタンスを通じて、背後のデータベースに対
して
SQL クエリを実行することが出来るようになります。
[
[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>
...
@@ -105,9 +101,9 @@ class Country extends ActiveRecord
...
@@ -105,9 +101,9 @@ class Country extends ActiveRecord
`Country`
クラスは
[
[yii\db\ActiveRecord
]
] を拡張しています。この中には一つもコードを書く必要はありません。
`Country`
クラスは
[
[yii\db\ActiveRecord
]
] を拡張しています。この中には一つもコードを書く必要はありません。
単に上記のコードだけで、Yii は関連付けられたテーブル名をクラス名から推測します。
単に上記のコードだけで、Yii は関連付けられたテーブル名をクラス名から推測します。
> Info|情報: クラス名とテーブル名を直接に合致させることが出来ない場合は、[[yii\db\ActiveRecord::tableName()]] メソッドをオーバーライドして、関連づけられたテーブル名を明示的に
規
定することが出来ます。
> Info|情報: クラス名とテーブル名を直接に合致させることが出来ない場合は、[[yii\db\ActiveRecord::tableName()]] メソッドをオーバーライドして、関連づけられたテーブル名を明示的に
指
定することが出来ます。
`Country`
クラスを使うことによって、以下のコード断片で示すように、
`country`
テーブルの中のデータを簡単に操作することが出来ます
:
`Country`
クラスを使うことによって、以下のコード断片で示すように、
`country`
テーブルの中のデータを簡単に操作することが出来ます
。
```
php
```
php
use
app\models\Country
;
use
app\models\Country
;
...
@@ -127,18 +123,16 @@ $country->save();
...
@@ -127,18 +123,16 @@ $country->save();
```
```
> Info|情報: アクティブレコードは、オブジェクト指向の流儀でデータベースのデータにアクセスし、操作する強力な方法です。
> Info|情報: アクティブレコードは、オブジェクト指向の流儀でデータベースのデータにアクセスし、操作する強力な方法です。
[
アクティブレコード
](
db-active-record.md
)
の節で、更に詳細な情報を得ることが出来ます。
[
アクティブレコード
](
db-active-record.md
)
の節で、詳細な情報を得ることが出来ます。
もう一つの方法として、
[
データアクセスオブジェクト(DAO)
](
db-dao.md
)
と呼ばれる、より低レベルなデータアクセス方法を使って
もう一つの方法として、
[
データアクセスオブジェクト
](
db-dao.md
)
と呼ばれる、より低レベルなデータアクセス方法を使ってデータベースを操作することも出来ます。
データベースを操作することも出来ます。
アクションを作成する<a name="creating-action"></a>
アクションを作成する<a name="creating-action"></a>
--------------------
--------------------
国データをエンドユーザに見えるようにするために、新しいアクションを作成する必要があります。
国データをエンドユーザに見えるようにするために、新しいアクションを作成する必要があります。
これまでの節でしたように
`site`
コントローラの中に新しいアクションを置くのではなく、国データに関係する全てのアクションに
これまでの節でしたように
`site`
コントローラの中に新しいアクションを置くのではなく、国データに関係する全てのアクションに限定した新しいコントローラを作成する方が理にかなうでしょう。
限定した新しいコントローラを作成する方が理にかなうでしょう。この新しいコントローラを
`CountryController`
と名付けます。
この新しいコントローラを
`CountryController`
と名付けます。そして、下記に示すように、
`index`
アクションをその中に作成します。
そして、下記に示すように、
`index`
アクションをその中に作成します。
```php
```php
...
@@ -179,9 +173,9 @@ class CountryController extends Controller
...
@@ -179,9 +173,9 @@ class CountryController extends Controller
`index`
アクションは
`Country::find()`
を呼び出します。
`index`
アクションは
`Country::find()`
を呼び出します。
このアクティブレコードのメソッドは DB クエリを構築して、
`country`
テーブルから全てのデータを読み出します。
このアクティブレコードのメソッドは DB クエリを構築して、
`country`
テーブルから全てのデータを読み出します。
一回のリクエストで返される国の数を制限するために、クエリは
[
[yii\data\Pagination
]
] オブジェクトの助けを借りてページ付けされます。
一回のリクエストで返される国の数を制限するために、クエリは
[
[yii\data\Pagination
]
] オブジェクトの助けを借りてページ付けされます。
`Pagination`
オブジェクトは二つの目的に奉仕します
:
`Pagination`
オブジェクトは二つの目的に奉仕します
。
*
クエリによって表現される SQL 文に
`offset`
句と
`limit`
句をセットして、一度に一ページ分のデータだけ (1ページ最大5行)を返すようにします。
*
クエリによって表現される SQL 文に
`offset`
句と
`limit`
句をセットして、一度に一ページ分のデータだけ (1ページ最大5行)
を返すようにします。
*
次の項で説明されるように、一連のページボタンからなるページャをビューに表示するために使われます。
*
次の項で説明されるように、一連のページボタンからなるページャをビューに表示するために使われます。
コードの最後で、
`index`
アクションは
`index`
と言う名前のビューをレンダリングしていますが、このとき、国データはもちろん、そのページ付け情報もビューに渡されます。
コードの最後で、
`index`
アクションは
`index`
と言う名前のビューをレンダリングしていますが、このとき、国データはもちろん、そのページ付け情報もビューに渡されます。
...
@@ -192,7 +186,7 @@ class CountryController extends Controller
...
@@ -192,7 +186,7 @@ class CountryController extends Controller
最初に、
`views`
ディレクトリの下に
`country`
という名前のサブディレクトリを作ってください。
最初に、
`views`
ディレクトリの下に
`country`
という名前のサブディレクトリを作ってください。
このフォルダが
`country`
コントローラによって表示される全てのビューを保持するのに使われます。
このフォルダが
`country`
コントローラによって表示される全てのビューを保持するのに使われます。
`views/country`
ディレクトリの中に、下記のコードを含む
`index.php`
という名前のファイルを作成します
:
`views/country`
ディレクトリの中に、下記のコードを含む
`index.php`
という名前のファイルを作成します
。
```
php
```
php
<?php
<?php
...
@@ -214,15 +208,14 @@ use yii\widgets\LinkPager;
...
@@ -214,15 +208,14 @@ 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 をアクセスします
。
```
```
http://hostname/index.php?r=country/index
http://hostname/index.php?r=country/index
...
@@ -232,8 +225,8 @@ http://hostname/index.php?r=country/index
...
@@ -232,8 +225,8 @@ http://hostname/index.php?r=country/index
最初、ページは5つの国を表示しています。
最初、ページは5つの国を表示しています。
そして、国リストの下には、4つのボタンを持ったページャがあります。
そして、国リストの下には、4つのボタンを持ったページャがあります。
"2" のボタンをクリックすると、ページはデータベース
から
次の5つの国、すなわち、2ページ目のレコードを表示します。
"2" のボタンをクリックすると、ページはデータベース
にある
次の5つの国、すなわち、2ページ目のレコードを表示します。
より注意深く観察すると、ブラウザの URL も次のように変ったことに気付くでしょう:
注意深く観察すると、ブラウザの URL も次のように変ったことに気付くでしょう。
```
```
http://hostname/index.php?r=country/index&page=2
http://hostname/index.php?r=country/index&page=2
...
@@ -241,8 +234,8 @@ http://hostname/index.php?r=country/index&page=2
...
@@ -241,8 +234,8 @@ http://hostname/index.php?r=country/index&page=2
舞台裏では、
[
[yii\data\Pagination|Pagination
]
] が、データセットをページ付けするのに必要な全ての機能を提供しています。
舞台裏では、
[
[yii\data\Pagination|Pagination
]
] が、データセットをページ付けするのに必要な全ての機能を提供しています。
*
最初
、
[
[yii\data\Pagination|Pagination
]
] は、1ページ目を表しています。
*
初期状態では
、
[
[yii\data\Pagination|Pagination
]
] は、1ページ目を表しています。
これ
は、国の SELECT クエリが
`LIMIT 5 OFFSET 0`
という句を伴うことを示してい
ます。
これ
を反映して、国の SELECT クエリは
`LIMIT 5 OFFSET 0`
という句を伴うことになり
ます。
その結果、最初の5つの国が取得されて表示されます。
その結果、最初の5つの国が取得されて表示されます。
*
[
[yii\widgets\LinkPager|LinkPager
]
] ウィジェットは、
[
[yii\data\Pagination::createUrl()|Pagination
]
] によって作成された URL を使ってページボタンをレンダリングします。
*
[
[yii\widgets\LinkPager|LinkPager
]
] ウィジェットは、
[
[yii\data\Pagination::createUrl()|Pagination
]
] によって作成された URL を使ってページボタンをレンダリングします。
URL は、別々のページ番号を表現する
`page`
というクエリパラメータを含んだものになります。
URL は、別々のページ番号を表現する
`page`
というクエリパラメータを含んだものになります。
...
@@ -259,4 +252,4 @@ http://hostname/index.php?r=country/index&page=2
...
@@ -259,4 +252,4 @@ http://hostname/index.php?r=country/index&page=2
次の節では、
[
Gii
](
tool-gii.md
)
と呼ばれる強力なコード生成ツールを使う方法を学びます。
次の節では、
[
Gii
](
tool-gii.md
)
と呼ばれる強力なコード生成ツールを使う方法を学びます。
このツールは、データベーステーブルのデータを取り扱うための「作成・読出し・更新・削除 (CRUD)」操作のような、通常必要とされることが多いいくつかの機能の迅速な実装を手助けしてくれるものです。
このツールは、データベーステーブルのデータを取り扱うための「作成・読出し・更新・削除 (CRUD)」操作のような、通常必要とされることが多いいくつかの機能の迅速な実装を手助けしてくれるものです。
実際のところ、あなたがたった今書いたばかりのコードは、Gii ツールを使
って Yii によって自動的に生成することが出来ま
す。
実際のところ、あなたがたった今書いたばかりのコードは、Gii ツールを使
えば、全部、Yii が自動的に生成してくれるもので
す。
docs/guide-ja/start-forms.md
View file @
8fb4ce5d
フォームを扱う
フォームを扱う
==============
==============
この節では、ユーザからデータを取得するフォームを持つ新し
いペー
ジを作る方法を説明します。
この節では、ユーザからデータを取得するためのフォームを持
つ新しいペー
ジを作る方法を説明します。
このページは名前の入力フィールドとメールの入力フィールドを持つフォームを表示します。
このページは名前の入力フィールドとメールの入力フィールドを持つフォームを表示します。
ユーザからこれら二つの情報を受け取った後、ページは確認のために入力された値をエコ
ーバックします。
ユーザからこれら二つの情報を受け取った後、ページは入力された値を確認のためにエコ
ーバックします。
この目的を達するために、一つの
[
アクション
](
structure-controllers.md
)
と 二つの
[
ビュー
](
structure-views.md
)
を作成する以外に、
この目的を達するために、一つの
[
アクション
](
structure-controllers.md
)
と 二つの
[
ビュー
](
structure-views.md
)
を作成する以外に、
一つの
[
モデル
](
structure-models.md
)
をも作成します。
一つの
[
モデル
](
structure-models.md
)
をも作成します。
このチュートリアルを通じて、次のことをする方法を学び
ます:
このチュートリアルを通じて、次の方法を学びます。
*
フォームを通じてユーザが入力したデータ
を表す
[
モデル
](
structure-models.md
)
を作成する
*
フォームを通じてユーザによって入力され
るデータを表す
[
モデル
](
structure-models.md
)
を作成する方法
*
入力されたデータを検証する規則を宣言する
*
入力されたデータを検証する規則を宣言する方法
*
[
ビュー
](
structure-views.md
)
の中で HTML フォームを構築する
*
[
ビュー
](
structure-views.md
)
の中で HTML フォームを構築する方法
モデルを作成する<a name="creating-model"></a>
モデルを作成する<a name="creating-model"></a>
----------------
----------------
ユーザからの入
力を要求するデータは下に示されているように
`E
ntryForm`
モデルクラスとして表現され、
`models/EntryForm.php`
というファイルに保存されます。
ユーザに入力し
てもらうデータは、下に示されているように
`
EntryForm`
モデルクラスとして表現され、
`models/EntryForm.php`
というファイルに保存されます。
クラスファイルの命名規約についての詳細は
[
クラスのオートロード
](
concept-autoloading.md
)
の節を参照してください。
クラスファイルの命名規約についての詳細は
[
クラスのオートロード
](
concept-autoloading.md
)
の節を参照してください。
```
php
```
php
...
@@ -49,15 +49,15 @@ class EntryForm extends Model
...
@@ -49,15 +49,15 @@ class EntryForm extends Model
> Info|情報: [[yii\base\Model]] はデータベーステーブルと関連*しない*モデルクラスの親として使われます。
> Info|情報: [[yii\base\Model]] はデータベーステーブルと関連*しない*モデルクラスの親として使われます。
データベーステーブルと対応するモデルクラスでは、通常は
[
[yii\db\ActiveRecord
]
] が親になります。
データベーステーブルと対応するモデルクラスでは、通常は
[
[yii\db\ActiveRecord
]
] が親になります。
`EntryForm`
クラスは二つのパブリックメンバー、
`name`
と
`email`
を持っており、これらがユーザによって入力されたデータを保管するのに使われます。
`EntryForm`
クラスは二つのパブリックメンバー、
`name`
と
`email`
を持っており、これらがユーザによって入力されるデータを保管するのに使われます。
このクラスはまた
`rules()`
という名前のメソッドを持っています。このメソッドがデータを検証する一連の規則を返します。
このクラスはまた
`rules()`
という名前のメソッドを持っています。このメソッドがデータを検証する一連の規則を返します。
上記で宣言されている検証規則は次のことを述べています:
上記で宣言されている検証規則は次のことを述べています。
*
`name`
と
`email`
は、ともに値を要求される
*
`name`
と
`email`
は、ともに値を要求される
*
`email`
のデータは構文的に正当なメールアドレスでなければならない
*
`email`
のデータは構文的に正当なメールアドレスでなければならない
`EntryForm`
オブジェクトにユーザが入力したデータを投入した後、
[
[yii\base
\Model::validate()|validate()
]
] を呼んでデータ検証ルーチンを始動することが出来ます。
ユーザによって入力されたデータを
`EntryForm`
オブジェクトに投入した後、
[
[yii\base
\Model::validate()|validate()
]
] を呼んでデータ検証ルーチンを始動することが出来ます。
データ検証が失敗すると
[
[yii\base\Model::hasErrors|hasErrors
]
] プロパティが true に設定され、
データ検証が失敗すると
[
[yii\base\Model::hasErrors|hasErrors
]
] プロパティが true に設定されます。
そして、
[
[yii\base\Model::getErrors|errors
]
] を通じて、どのような検証エラーが発生したかを知ることが出来ます。
そして、
[
[yii\base\Model::getErrors|errors
]
] を通じて、どのような検証エラーが発生したかを知ることが出来ます。
...
@@ -99,32 +99,33 @@ class SiteController extends Controller
...
@@ -99,32 +99,33 @@ class SiteController extends Controller
$model
=
new
EntryForm
;
$model
=
new
EntryForm
;
if
(
$model
->
load
(
Yii
::
$app
->
request
->
post
())
&&
$model
->
validate
())
{
if
(
$model
->
load
(
Yii
::
$app
->
request
->
post
())
&&
$model
->
validate
())
{
// $model に受
け取ったデータを検証する
// $model に有
効なデータを受け取った場合
// ここで $model について意味のあ
ることを何かする ...
// ここで $model について何か意味
のあることをする ...
return
$this
->
render
(
'entry-confirm'
,
[
'model'
=>
$model
]);
return
$this
->
render
(
'entry-confirm'
,
[
'model'
=>
$model
]);
}
else
{
}
else
{
// ページの初期表示か、または、何か検証エラーがある
// ページの初期表示か、または、何か検証エラーがある場合
return
$this
->
render
(
'entry'
,
[
'model'
=>
$model
]);
return
$this
->
render
(
'entry'
,
[
'model'
=>
$model
]);
}
}
}
}
}
}
```
```
アクションは最初に
`EntryForm`
オブジェクトを生成します。そして、次に、モデルに
`$_POST`
のデータ、
アクションは最初に
`EntryForm`
オブジェクトを生成します。そして、次に、モデルに
`$_POST`
のデータ、Yii においては
[
[yii\web\R
equest::post()
]
]
Yii においては
[
[yii\web\Request::post()
]
] によって
提供されるデータを投入しようと試みます。
によって提供されるデータを投入しようと試みます。
モデルへのデータ投入が成功した場合(つまり、ユーザが HTML フォームを送信した場合)、アクションは
モデルへのデータ投入が成功した場合(つまり、ユーザが HTML フォームを送信した場合)、アクションは
[
[yii\base\Model::valid
ate()|validate()
]
]
[
[yii\base\Model::validate()|validate()
]
]
を呼んで、入力された値が有効なものであることを確認します。
を呼んで、入力された値が有効なものであることを確認します。
> Info|情報: `Yii::$app` という式は [アプリケーション](structure-applications.md) インスタンスを表現します。
> Info|情報: `Yii::$app` という式は [アプリケーション](structure-applications.md) インスタンスを表現します。
これはグローバルにアクセス可能なシングルトンです。これは、また、特定の機能性をサポートする
`request`
、
これはグローバルにアクセス可能なシングルトンです。
`response`
,
`db`
などのコンポーネントを提供する
[
サービスロケータ
](
concept-service-locator.md
)
でもあります。
これは、また、特定の機能性をサポートする
`request`
、
`response`
、
`db`
などのコンポーネントを提供する
上記のコードでは、アプリケーションインスタンスの
`request`
コンポーネントが
`$_POST`
データにアクセスするために使われています。
[
サービスロケータ
](
concept-service-locator.md
)
でもあります。
上記のコードでは、アプリケーションインスタンスの
`request`
コンポーネントが
`$_POST`
データにアクセスするために使われています。
すべてが適正である場合、アクションは
`entry-confirm`
という名前のビューを表示して、データの送信が成功したことをユーザに確認させます。
すべてが適正である場合、アクションは
`entry-confirm`
という名前のビューを表示して、データの送信が成功したことをユーザに確認させます。
データが送信されなかったり、データがエラーを含んでいたりする場合は、
`entry`
ビューが表示され、その中で HTML フォームが
データが送信されなかったり、データがエラーを含んでいたりする場合は、
`entry`
ビューが表示され、その中で HTML フォームが
(もし有れば)検証
エラーのメッセージとともに表示されます。
(もし有れば) 検証エラ
ーのメッセージとともに表示されます。
> Note|注意: この簡単な例では、有効なデータ送信に対して単純に確認ページを表示しています。実際の仕事では、
> Note|注意: この簡単な例では、有効なデータ送信に対して単純に確認ページを表示しています。実際の仕事では、
[
フォーム送信の諸問題
](
http://en.wikipedia.org/wiki/Post/Redirect/Get
)
を避けるために、
[
フォーム送信の諸問題
](
http://en.wikipedia.org/wiki/Post/Redirect/Get
)
を避けるために、
...
@@ -143,7 +144,7 @@ Yii 縺ォ縺翫>縺ヲ縺ッ [[yii\web\Request::post()]] 縺ォ繧医▲縺ヲ謠蝉セ帙&繧後k繝
...
@@ -143,7 +144,7 @@ Yii 縺ォ縺翫>縺ヲ縺ッ [[yii\web\Request::post()]] 縺ォ繧医▲縺ヲ謠蝉セ帙&繧後k繝
<?php
<?php
use
yii\helpers\Html
;
use
yii\helpers\Html
;
?>
?>
<p>
あなたは次の情報を入力しました:
</p>
<p>
あなたは次の情報を入力しました
</p>
<ul>
<ul>
<li><label>
名前
</label>
:
<?=
Html
::
encode
(
$model
->
name
)
?>
</li>
<li><label>
名前
</label>
:
<?=
Html
::
encode
(
$model
->
name
)
?>
</li>
...
@@ -181,7 +182,7 @@ use yii\widgets\ActiveForm;
...
@@ -181,7 +182,7 @@ use yii\widgets\ActiveForm;
試してみる<a name="trying-it-out"></a>
試してみる<a name="trying-it-out"></a>
----------
----------
どのように動作するかを見るために、ブラウザで下記の URL をアクセスしてください:
どのように動作するかを見るために、ブラウザで下記の URL をアクセスしてください。
```
```
http://hostname/index.php?r=site/entry
http://hostname/index.php?r=site/entry
...
@@ -190,7 +191,7 @@ http://hostname/index.php?r=site/entry
...
@@ -190,7 +191,7 @@ http://hostname/index.php?r=site/entry
二つの入力フィールドを持つフォームを表示するページが表示されるでしょう。
二つの入力フィールドを持つフォームを表示するページが表示されるでしょう。
それぞれの入力フィールドの前には、どんなデータを入力すべきかを示すラベルがあります。
それぞれの入力フィールドの前には、どんなデータを入力すべきかを示すラベルがあります。
何も入力せずに、あるいは、無効なメールアドレスを入力して送信ボタンをクリックすると、
何も入力せずに、あるいは、無効なメールアドレスを入力して送信ボタンをクリックすると、
それぞれ問題のある入力フィールドの続きにエラーメッセ
ージが
表示されます。
それぞれ問題のある入力フィールドの後ろにエラーメッセ
ージが
表示されます。


...
@@ -201,13 +202,11 @@ http://hostname/index.php?r=site/entry
...
@@ -201,13 +202,11 @@ http://hostname/index.php?r=site/entry
### 魔法の説明<a name="magic-explained"></a>
### 魔法の説明<a name="magic-explained"></a>
あなたは、舞台裏で HTML フォームがどのように動いているのか、不思議に思うかも知れません。なぜなら、
あなたは、舞台裏で HTML フォームがどのように動いているのか、不思議に思うかも知れません。
フォームが、ほとんど魔法のように、各入力フィールドのラベルを表示し、データを正しく入力しない場合には
なぜなら、フォームが、ほとんど魔法のように、各入力フィールドのラベルを表示し、データを正しく入力しなかった場合には、ページをリロードすることなく、エラーメッセージを表示するからです。
ページをリロードすることなくエラーメッセージを表示するからです。
そう、データの検証は、最初に JavaScript を使ってクライアントサイドで実行され、次に PHP によってサーバーサイドで実行されます。
そう、データの検証は、最初に JavaScript を使ってクライアントサイドで実行され、次に PHP によってサーバーサイドで実行されます。
[
[yii\widgets\ActiveForm
]
] は、賢いことに、
`EntryForm`
で宣言した検証規則を抽出し、それを実行可能な JavaScript コードに変換して、
[
[yii\widgets\ActiveForm
]
] は、賢いことに、
`EntryForm`
で宣言した検証規則を抽出し、それを実行可能な JavaScript コードに変換して、JavaScript を使ってデータ検証を実行します。
JavaScript を使ってデータ検証を実行します。
ブラウザで JavaScript を無効にした場合でも、
`actionEntry()`
メソッドで示されているように、サーバーサイドでの検証は実行されます。
ブラウザで JavaScript を無効にした場合でも、
`actionEntry()`
メソッドで示されているように、サーバーサイドでの検証は実行されます。
これにより、どのような状況であっても、データの有効性が保証されます。
これにより、どのような状況であっても、データの有効性が保証されます。
...
@@ -217,7 +216,7 @@ JavaScript 繧剃スソ縺」縺ヲ繝繧ソ讀懆ィシ繧貞ョ溯。後@縺セ縺吶
...
@@ -217,7 +216,7 @@ JavaScript 繧剃スソ縺」縺ヲ繝繧ソ讀懆ィシ繧貞ョ溯。後@縺セ縺吶
入力フィールドのラベルは、モデルのプロパティ名を使用して、
`field()`
メソッドによって生成されます。
入力フィールドのラベルは、モデルのプロパティ名を使用して、
`field()`
メソッドによって生成されます。
例えば、
`name`
というプロパティから
`Name`
というラベルが生成されます。
例えば、
`name`
というプロパティから
`Name`
というラベルが生成されます。
ビューの中で、下記のコードのように、ラベルをカスタマイズすることも出来ます:
ビューの中で、下記のコードのように、ラベルをカスタマイズすることも出来ます。
```
php
```
php
<?=
$form
->
field
(
$model
,
'name'
)
->
label
(
'お名前'
)
?>
<?=
$form
->
field
(
$model
,
'name'
)
->
label
(
'お名前'
)
?>
...
...
docs/guide-ja/start-gii.md
View file @
8fb4ce5d
Gii でコードを生成する
Gii でコードを生成する
======================
======================
この節では、
[
Gii
](
tool-gii.md
)
を使って、ウェブサイトの一般的な機能のいくつかを実装するコードを
この節では、
[
Gii
](
tool-gii.md
)
を使って、ウェブサイトの一般的な機能のいくつかを実装するコードを自動的に生成する方法を説明します。
自動的に生成する方法を説明します。Gii を使ってコードを自動生成することは、Gii のウェブページに
Gii を使ってコードを自動生成することは、Gii のウェブページに表示される指示に対して正しい情報を入力するだけのことです。
表示される指示に対して正しい情報を入力するだけのことです。
このチュートリアルを通じて、次のことをする方法を学びます:
このチュートリアルを通じて、次のことを学びます。
*
アプリケーションで Gii を有効にする
*
アプリケーションで Gii を有効にする方法
*
Gii を使って、アクティブレコードのクラスを生成する
*
Gii を使って、アクティブレコードのクラスを生成する方法
*
Gii を使って、DB テーブルの CRUD 操作を実装するコードを生成する
*
Gii を使って、DB テーブルの CRUD 操作を実装するコードを生成する方法
*
Gii によって生成されるコードをカスタマイズする
*
Gii によって生成されるコードをカスタマイズする方法
Gii を開始する<a name="starting-gii"></a>
Gii を開始する<a name="starting-gii"></a>
--------------
--------------
[
Gii
](
tool-gii.md
)
は Yii の
[
モジュール
](
structure-modules.md
)
として提供されます。
[
Gii
](
tool-gii.md
)
は Yii の
[
モジュール
](
structure-modules.md
)
として提供されています。
Gii は、アプリケーションの
[
[yii\base\Application::modules|modules
]
] プロパティの中で構成することで有効にすることが出来ます。
Gii は、アプリケーションの
[
[yii\base\Application::modules|modules
]
] プロパティの中で構成することで有効にすることが出来ます。
アプリケーションを生成した仕方にもよりますが、
`config/web.php`
のコンフィギュレーションファイルの
中に、多分、下記のコードが既に提供されているでしょう:
アプリケーションを生成した仕方にもよりますが、
`config/web.php`
の構成情報ファイルの中に、多分、下
記のコードが既に提供されているでしょう。
```
php
```
php
$config
=
[
...
];
$config
=
[
...
];
...
@@ -29,8 +28,8 @@ if (YII_ENV_DEV) {
...
@@ -29,8 +28,8 @@ if (YII_ENV_DEV) {
}
}
```
```
上記のコ
ンフィギュレーションは、
[
開発環境
](
co
ncept-configurations.md#environment-constants
)
において、アプリケーションは
上記の構
成情報は
、
[
開発環境
](
concept-configurations.md#environment-constants
)
において、アプリケーションは
`gii`
という名前のモジュールをインクルードすべきこと、そして
`gii`
は
[
[yii\gii\Module
]
] というクラスのものであることを記述しています。
`gii`
という名前のモジュールをインクルードすべきこと、そして
`gii`
は
[
[yii\gii\Module
]
] というクラスであることを記述しています。
アプリケーションの
[
エントリスクリプト
](
structure-entry-scripts.md
)
である
`web/index.php`
をチェックすると、次の行があることに気付くでしょう。
アプリケーションの
[
エントリスクリプト
](
structure-entry-scripts.md
)
である
`web/index.php`
をチェックすると、次の行があることに気付くでしょう。
これは本質的には
`YII_ENV_DEV`
を true に設定するものです。
これは本質的には
`YII_ENV_DEV`
を true に設定するものです。
...
@@ -39,15 +38,15 @@ if (YII_ENV_DEV) {
...
@@ -39,15 +38,15 @@ if (YII_ENV_DEV) {
defined
(
'YII_ENV'
)
or
define
(
'YII_ENV'
,
'dev'
);
defined
(
'YII_ENV'
)
or
define
(
'YII_ENV'
,
'dev'
);
```
```
この行のおかげで、アプリケーションは開発モードになり、上記のコンフィギュレーショ
ンによって、Gii が有効になります。
この行のおかげで、アプリケーションは開発モードになっており、上記の構成情報によっ
て、Gii が既に有効になっています。
これで、下記の URL によって Gii にアクセスすることが出来ます:
これで、下記の URL によって Gii にアクセスすることが出来ます。
```
```
http://hostname/index.php?r=gii
http://hostname/index.php?r=gii
```
```
> Note|注意: ローカルホスト以外のマシンから Gii にアクセスしようとすると、既定ではセキュリティ上の
> Note|注意: ローカルホスト以外のマシンから Gii にアクセスしようとすると、既定ではセキュリティ上の理由でアクセスが拒否されます。
>
目的からアクセスが拒否されます。下記のように Gii
を構成して、許可される IP アドレスを追加することが出来ます。
>
下
記のように Gii を構成して、許可される IP アドレスを追加することが出来ます。
>
>
```
php
```
php
'gii'
=>
[
'gii'
=>
[
...
@@ -63,7 +62,7 @@ http://hostname/index.php?r=gii
...
@@ -63,7 +62,7 @@ http://hostname/index.php?r=gii
------------------------------------
------------------------------------
Gii を使ってアクティブレコードのクラスを生成するためには、(Gii のインデックスページのリンクをクリックして) "Model Generator" を選びます。
Gii を使ってアクティブレコードのクラスを生成するためには、(Gii のインデックスページのリンクをクリックして) "Model Generator" を選びます。
そして、次のようにフォームに入力します:
そして、次のようにフォームに入力します。
*
Table Name:
`country`
*
Table Name:
`country`
*
Model Class:
`Country`
*
Model Class:
`Country`
...
@@ -74,26 +73,24 @@ Gii 繧剃スソ縺」縺ヲ繧「繧ッ繝ぅ繝悶Ξ繧ウ繝シ繝峨繧ッ繝ゥ繧ケ繧堤函謌舌☆繧九◆繧√↓
...
@@ -74,26 +73,24 @@ Gii 繧剃スソ縺」縺ヲ繧「繧ッ繝ぅ繝悶Ξ繧ウ繝シ繝峨繧ッ繝ゥ繧ケ繧堤函謌舌☆繧九◆繧√↓
そうすると、結果として作成されるクラスファイルのリストに
`models/Country.php`
が挙ってきます。
そうすると、結果として作成されるクラスファイルのリストに
`models/Country.php`
が挙ってきます。
クラスファイルの名前をクリックすると、内容をプレビュー出来ます。
クラスファイルの名前をクリックすると、内容をプレビュー出来ます。
Gii を使うときに、既に同じファイルを作成していて、それを上書きしようとしている場合は、
Gii を使うときに、既に同じファイルを作成していて、それを上書きしようとしている場合は、ファイル名の隣の
`diff`
ファイル名の隣の
`diff`
ボタンをクリックして、生成されようとしているコードと既存のバージョンの
ボタンをクリックして、生成されようとしているコードと既存のバージョンの違いを見てください。
違いを見てください。


既存のファイルを上書きしようとしているときは、"overwrite" の隣のチェックボックスをチェックしてから "Generate" ボタンをクリックします。
既存のファイルを上書きしようとしているときは、"overwrite" の隣のチェックボックスをチェックしてから "Generate" ボタンをクリックします。
新しいファイルを作成しようとしているときは、単に "Generate" を押せば大丈夫です。
新しいファイルを作成しようとしているときは、単に "Generate" を押せば大丈夫です。
次に、コードの生成が成功したことを示す確認ページが表示されます。既存のファイルがあった場合は、
次に、コードの生成が成功したことを示す確認ページが表示されます。
それが新しく
生成されたコードで上書きされたことを示すメッセージも同じく表示されます。
既存のファイルがあった場合は、それが新しく生成されたコード
で上書きされたことを示すメッセージも同じく表示されます。
CRUD コードを生成する<a name="generating-crud"></a>
CRUD コードを生成する<a name="generating-crud"></a>
---------------------
---------------------
CRUD は Create(作成)、Read(読出し)、Update(更新)、そして Delete(削除) を意味しており、
CRUD は Create(作成)、Read(読出し)、Update(更新)、そして Delete(削除) を意味しており、ほとんどのウェブサイトでデータを扱うときによく用いられる4つのタスクを表しています。
ほとんどのウェブサイトでデータを扱うときによく用いられる4つのタスクを表しています。
Gii を使って CRUD 機能を作成するためには、(Gii のインデックスページのリンクをクリックして) "CRUD Generator" を選びます。
Gii を使って CRUD 機能を作成するためには、(Gii のインデックスページのリンクをクリックして) "CRUD Generator" を選びます。
「国リスト」のサンプルのためには、以下のようにフォームに入力します:
「国リスト」のサンプルのためには、以下のようにフォームに入力します。
*
Model Class:
`app\models\Country`
*
Model Class:
`app\models\Country`
*
Search Model Class:
`app\models\CountrySearch`
*
Search Model Class:
`app\models\CountrySearch`
...
@@ -106,31 +103,31 @@ Gii 繧剃スソ縺」縺ヲ CRUD 讖溯繧剃ス懈縺吶k縺溘a縺ォ縺ッ縲(Gii 縺ョ繧、繝ウ繝ャ繧
...
@@ -106,31 +103,31 @@ Gii 繧剃スソ縺」縺ヲ CRUD 讖溯繧剃ス懈縺吶k縺溘a縺ォ縺ッ縲(Gii 縺ョ繧、繝ウ繝ャ繧


以前に(ガイドのデータベースの節で)
`controllers/CountryController.php`
と
以前に(ガイドのデータベースの節で)
`controllers/CountryController.php`
と
`views/country/index.php`
のファイルを作成していた場合は、それらを置き換えるために
`views/country/index.php`
のファイルを作成していた場合は、それらを置き換えるために "overwrite" の
"overwrite" のチェックボックスをチェックしてください。(以前のバージョンは フル機能の CRUD をサポートしていません。)
チェックボックスをチェックしてください。(以前のバージョンは フル機能の CRUD をサポートしていません。)
試してみる<a name="trying-it-out"></a>
試してみる<a name="trying-it-out"></a>
----------
----------
どのように動作するかを見るために、ブラウザを使って下記の URL にアクセスしてください:
どのように動作するかを見るために、ブラウザを使って下記の URL にアクセスしてください。
```
```
http://hostname/index.php?r=country/index
http://hostname/index.php?r=country/index
```
```
データグリッドがデータベーステーブルから取得した国を表示しているページが表示されます。
データグリッドがデータベーステーブルから取得した国を表示しているページが表示されます。
グリッドをソートしたり、カラムのヘッダに検索条件を入力してグリッドをフィルターしたりすることが出来ます。
グリッドをソートしたり、カラムのヘッダに検索条件を入力してグリッドにフィルタを適用したりすることが出来ま
す。
グリッドに表示されているそれぞれの国について、詳細を見たり、更新したり、または削除したりすることが出来ます。また、グリッドの上にある "Create Country" ボタンをクリックすると、新しい国データを作成するためのフォームが利用に供されます。
グリッドに表示されているそれぞれの国について、詳細を見たり、更新したり、または削除したりすることが出来ます。
また、グリッドの上にある "Create Country" ボタンをクリックすると、新しい国データを作成するためのフォームが利用に供されます。




下記が Gii によって生成されるファイルのリストです。
下記が Gii によって生成されるファイルのリストです。
これらの機能がどのように実装されているかを調査したい場合、また、これらの機能をカスタマイズしたいときに参照してください:
これらの機能がどのように実装されているかを調査したい場合、また、これらの機能をカスタマイズしたいときに参照してください。
*
Controller:
`controllers/CountryController.php`
*
Controller:
`controllers/CountryController.php`
*
Models:
`models/Country.php`
and
`models/CountrySearch.php`
*
Models:
`models/Country.php`
and
`models/CountrySearch.php`
...
@@ -138,7 +135,7 @@ http://hostname/index.php?r=country/index
...
@@ -138,7 +135,7 @@ http://hostname/index.php?r=country/index
> Info|情報: Gii は非常にカスタマイズしやすく拡張しやすいコード生成ツールとして設計されています。
> Info|情報: Gii は非常にカスタマイズしやすく拡張しやすいコード生成ツールとして設計されています。
これを賢く使うと、アプリケーションの開発速度を大いに高めることが出来ます。
これを賢く使うと、アプリケーションの開発速度を大いに高めることが出来ます。
更なる詳細は、
[
Gi
i
](
tool-gii.md
)
の節を参照してください。
詳細については、
[
G
ii
](
tool-gii.md
)
の節を参照してください。
まとめ<a name="summary"></a>
まとめ<a name="summary"></a>
...
...
docs/guide-ja/start-hello.md
View file @
8fb4ce5d
「こんにちは」と言う
「こんにちは」と言う
====================
====================
この節では、アプリケーションに新しい「こんにちは」
というページを作成する方法を説明します。
この節では、アプリケーションに「こんにちは」という
新しいページを作成する方法を説明します。
この目的を達するために、
[
アクション
](
structure-controllers.md#creating-actions
)
と
[
ビュー
](
structure-views.md
)
を作成することになります:
この目的を達するために、
[
アクション
](
structure-controllers.md#creating-actions
)
と
[
ビュー
](
structure-views.md
)
を作成することになります。
*
アプリケーションがこのページへのリクエストをそのアクションに送付し、
*
アプリケーションがこのページへのリクエストをそのアクションに送付し、
*
次にそのアクションが "Hello" という言葉をエンドユーザに示すビューを表示します。
*
次にそのアクションが "Hello" という言葉をエンドユーザに示すビューを表示します。
このチュートリアルを通じて、次の三つのこと
を学びます:
このチュートリアルを通じて、三つのことを学
びます。
1.
リクエストに応える
[
アクション
](
structure-controllers.md
)
をどのようにして作るか、
1.
リクエストに応える
[
アクション
](
structure-controllers.md
)
を作成する方法
2.
レスポンスの内容を構成する
[
ビュー
](
structure-views.md
)
をどのようにして作るか
、そして、
2.
レスポンスの内容を構成する
[
ビュー
](
structure-views.md
)
を作成する方法
3.
アプリケーションはどのようにして
リクエストを
[
アクション
](
structure-controllers.md#creating-actions
)
に送付するか。
3.
アプリケーションがリクエストを
[
アクション
](
structure-controllers.md#creating-actions
)
に送付する仕組み
アクションを作成する<a name="creating-action"></a>
アクションを作成する<a name="creating-action"></a>
--------------------
--------------------
「こんにちは」のタスクのために、
`message`
パラメータをリクエストから読んでそのメッセージをユーザに表示して返す
`sa
y`
[
アクション
](
structure-controllers.md#creating-actions
)
を作ります。
「こんにちは」のタスクのために、
`message`
パラメータをリクエストから読んで、そのメッセージをユーザに表示して返す
`s
ay`
[
アクション
](
structure-controllers.md#creating-actions
)
を作ります。
リクエストが
`message`
パラメータを提供しない場合は、このアクションは既定値とし
て "He
llo" というメッセージを表示するものとします。
リクエストが
`message`
パラメータを提供しない場合は、アクションは既定値として
"
Hello" というメッセージを表示するものとします。
> Info|情報: [アクション](structure-controllers.md#creating-actions) は、エンドユーザが直接に参照して実行できるオブジェクトです。
> Info|情報: [アクション](structure-controllers.md#creating-actions) は、エンドユーザが直接に参照して実行できるオブジェクトです。
アクションは
[
コントローラ
](
structure-controllers.md
)
によってグループ化されます。
アクションは
[
コントローラ
](
structure-controllers.md
)
によってグループ化されます。
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
アクションは
[
コントローラ
](
structure-controllers.md
)
の中で宣言されなければなりません。
アクションは
[
コントローラ
](
structure-controllers.md
)
の中で宣言されなければなりません。
話を簡単にするために、
`say`
アクションを既存の
`SiteController`
の中で宣言しましょう。
話を簡単にするために、
`say`
アクションを既存の
`SiteController`
の中で宣言しましょう。
このコントローラは
`controllers/SiteController.php`
というクラスファイルの中で定義されています。
このコントローラは
`controllers/SiteController.php`
というクラスファイルの中で定義されています。
次のようにして、新しいアクションを書き始めます:
次のようにして、新しいアクションを書き始めます。
```
php
```
php
<?php
<?php
...
@@ -47,9 +47,9 @@ class SiteController extends Controller
...
@@ -47,9 +47,9 @@ class SiteController extends Controller
}
}
```
```
上記のコードで、
`sa
y`
アクションは
`SiteController`
クラスの中で
`actionSay`
という
名前のメソッドとして定義されています。
上記のコードでは、
`S
iteController`
クラスの中で、
`say`
アクションが
`actionSay`
という
名前のメソッドとして定義されています。
Yii はコントローラクラスの中でアクションのメソッドとア
クシ
ョンでないメソッドを区別するために、
`action`
という接頭辞を使います。
Yii はコントローラクラスの中で、アクションのメソッドと
アクシ
ョンでないメソッドを区別するために、
`action`
という接頭辞を使います。
`action`
という接頭辞の後の名前がアクション ID にマップされます。
`action`
という接頭辞の後に続く名
前がアク
ション ID にマップされます。
アクションを命名するについては、Yii がアクション ID をどのように取り扱うかを知っているべきです。
アクションを命名するについては、Yii がアクション ID をどのように取り扱うかを知っているべきです。
アクション ID は常に小文字で参照されます。
アクション ID は常に小文字で参照されます。
...
@@ -57,16 +57,16 @@ Yii 縺ッ繧ウ繝ウ繝医Ο繝シ繝ゥ繧ッ繝ゥ繧ケ縺ョ荳ュ縺ァ繧「繧ッ繧キ繝ァ繝ウ縺ョ繝。繧ス繝ラ縺ィ繧「
...
@@ -57,16 +57,16 @@ Yii 縺ッ繧ウ繝ウ繝医Ο繝シ繝ゥ繧ッ繝ゥ繧ケ縺ョ荳ュ縺ァ繧「繧ッ繧キ繝ァ繝ウ縺ョ繝。繧ス繝ラ縺ィ繧「
アクションメソッドの名前は、アクション ID からダッシュを全て削除し、各単語の先頭の文字を大文字にした結果に
`action`
という接頭辞を付けたものとします。
アクションメソッドの名前は、アクション ID からダッシュを全て削除し、各単語の先頭の文字を大文字にした結果に
`action`
という接頭辞を付けたものとします。
例えば、アクション ID
`create-comment`
に対応するアクションメソッド名は
`actionCreateComment`
となります。
例えば、アクション ID
`create-comment`
に対応するアクションメソッド名は
`actionCreateComment`
となります。
私たちの例では、このアクションメソッドは
`$message`
というパラ
メータを取ります。
私たちの例では、このアクションメソッドは
`"Hello"`
という既定値
をもつ
`$message`
というパラメータを取ります
そして、このパラメータは
`"Hello"`
という既定値を取ります
(PHP で関数やメソッドの引数に既定値をセットするのと全く同じ方法です)。
(PHP で関数やメソッドの引数について既定値をセットするのと全く同じ方法を使います)。
アプリケーションは、リクエストを受け取ったとき、当該リクエストの処理を
`say`
アクションが担当すべきであると決定した場合は、
アプリケーションは、リクエストを受け取って、当該リクエストの処理を
`say`
アクションに任せると決定した場合、リクエストの中に同じ名前の付いたパラメータがあれば、それをこのパラメータに代入します。
リクエストの中に同じ名前の付いたパラメータがあれば、その値をこのパラメータに代入します。
言い換えれば、もしリクエストに
`"GoodBye"`
という値の
`message`
パラメータが入っていれば、アクションの
`$message`
変数にその値が割り当てられます。
言い換えれば、もしリクエストに
`"GoodBye"`
という値の
`message`
パラメータが入っていれば、アクションの
`$message`
変数にその値が割り当てられます。
このアクションメソッドの中では、
[
[yii\web\Controller::render()|render()
]
] が呼ばれて
`say`
と言う名前の
[
ビュー
](
structure-views.md
)
ファイルがレンダリングされます。
このアクションメソッドの中では、
[
[yii\web\Controller::render()|render()
]
] が呼ばれて
`say`
と言う名前の
[
ビュー
](
structure-views.md
)
ファイルがレンダリングされます。
`message`
パラメータも同時にビューに渡され、そこで使用されます。
`message`
パラメータも同時にビューに渡され、そこで使用されます。
レンダリング結果はアクションメソッドによって返されます。
レンダリング結果はアクションメソッドによって返されます。
返された結果はアプリケーションによって受け取られ、ブラウザ上でエンドユーザに(完全な HTML ページの一部として)表示されます。
返された結果はアプリケーションによって受け取られ、ブラウザ上でエンドユーザに (完全な HTML ページの一部として) 表示されま
す。
ビューを作成する<a name="creating-view"></a>
ビューを作成する<a name="creating-view"></a>
...
@@ -98,7 +98,7 @@ use yii\helpers\Html;
...
@@ -98,7 +98,7 @@ use yii\helpers\Html;
試してみる<a name="trying-it-out"></a>
試してみる<a name="trying-it-out"></a>
----------
----------
アクションとビューを作成したら、新しいページに下記の
URL でアクセスしてみましょう:
アクションとビューを作成したら、下記の URL で新
しいページにアクセスすることが出来ます。
```
```
http://hostname/index.php?r=site/say&message=Hello+World
http://hostname/index.php?r=site/say&message=Hello+World
...
@@ -106,11 +106,11 @@ http://hostname/index.php?r=site/say&message=Hello+World
...
@@ -106,11 +106,11 @@ http://hostname/index.php?r=site/say&message=Hello+World


この URL は
"
Hello World" を表示するページになります。
この URL は、
結果として、"Hell
o World" を表示するページになります。
このページはアプリケーションの他のページと同じヘッダとフッタを共有します。
このページはアプリケーションの他のページと同じヘッダとフッタを共有します。
URL から
`message`
パラメータを省略すると、"Hello" だけを表示するページを見ることになるでしょう。
URL から
`message`
パラメータを省略すると、"Hello" だけを表示するページを見ることになるでしょう。
これは、
`message`
が
`actionSay()`
メソッドにパラメータとして渡され、省略された場合には、既定
値である
`"Hello"`
が代りに使われるからです。
これは、
`message`
が
`actionSay()`
メソッドにパラメータとして渡されるものであり、それが省略さ
れた場合には、既定値である
`"Hel
lo"`
が代りに使われるからです。
> Info|情報: 新しいページは他のページと同じヘッダとフッタを共有しますが、それは [[yii\web\Controller::render()|render()]] メソッドが `say` ビューの結果をいわゆる [レイアウト](structure-views.md#layouts) に自動的に埋め込むからです。
> Info|情報: 新しいページは他のページと同じヘッダとフッタを共有しますが、それは [[yii\web\Controller::render()|render()]] メソッドが `say` ビューの結果をいわゆる [レイアウト](structure-views.md#layouts) に自動的に埋め込むからです。
レイアウトは、この場合、
`views/layouts/main.php`
にあります。
レイアウトは、この場合、
`views/layouts/main.php`
にあります。
...
@@ -118,7 +118,7 @@ URL 縺九i `message` 繝代Λ繝。繝シ繧ソ繧堤怐逡・縺吶k縺ィ縲"Hello" 縺縺代r陦ィ遉コ
...
@@ -118,7 +118,7 @@ URL 縺九i `message` 繝代Λ繝。繝シ繧ソ繧堤怐逡・縺吶k縺ィ縲"Hello" 縺縺代r陦ィ遉コ
上記の URL の
`r`
パラメータについて、さらに説明が必要でしょう。
上記の URL の
`r`
パラメータについて、さらに説明が必要でしょう。
これは
[
ルート
](
runtime-routing.md
)
、すなわち、特定のアクションを指し示すアプリケーション全体で一意な ID を表します。
これは
[
ルート
](
runtime-routing.md
)
、すなわち、特定のアクションを指し示すアプリケーション全体で一意な ID を表します。
ルートの書式は
`ControllerID/ActionID`
です。
ルートの書式は
`ControllerID/ActionID`
です。
アプリケーションはリクエストを受け取ると、このパラメータをチェックし、
`ControllerID`
の部分を使って、このリクエストを処理するためにどのコントローラクラスのインスタンスを作成すべきかを決定します。
アプリケーションはリクエストを受け取ると、このパラメータ
`r`
をチェックし、
`Controlle
rID`
の部分を使って、このリクエストを処理するためにどのコントローラクラスのインスタンスを作成すべきかを決定します。
そして、コントローラは
`ActionID`
の部分を使って、実際の仕事をするためにどのアクションを呼び出すべきかを決定します。
そして、コントローラは
`ActionID`
の部分を使って、実際の仕事をするためにどのアクションを呼び出すべきかを決定します。
この例で言えば、
`site/say`
というルートは、
`SiteController`
コントローラクラスと
`say`
アクションとして解決されます。
この例で言えば、
`site/say`
というルートは、
`SiteController`
コントローラクラスと
`say`
アクションとして解決されます。
結果として、
`SiteController::actionSay()`
メソッドがリクエストを処理するために呼び出されます。
結果として、
`SiteController::actionSay()`
メソッドがリクエストを処理するために呼び出されます。
...
...
docs/guide-ja/start-installation.md
View file @
8fb4ce5d
...
@@ -23,13 +23,13 @@ Windows 縺ァ縺ッ縲ーComposer-Setup.exe](https://getcomposer.org/Composer-Setup.exe
...
@@ -23,13 +23,13 @@ Windows 縺ァ縺ッ縲ーComposer-Setup.exe](https://getcomposer.org/Composer-Setup.exe
以前に Composer をインストールしたことがある場合は、確実に最新のバージョンを使うようにしてください。
以前に Composer をインストールしたことがある場合は、確実に最新のバージョンを使うようにしてください。
Composer は
`composer self-update`
コマンドを走らせてアップデートすることが出来ます。
Composer は
`composer self-update`
コマンドを走らせてアップデートすることが出来ます。
Composer がインストールされたら、ウェブからアクセスできるフォルダーで下記のコマンドを実行することに
よっ
て Yii をインストールすることが出来ます:
Composer がインストールされたら、ウェブからアクセスできるフォルダで下記のコマンドを実行することによって Yii をインストールすることが出来ます:
composer global require "fxp/composer-asset-plugin:1.0.0-beta4"
composer global require "fxp/composer-asset-plugin:1.0.0-beta4"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
最初のコマンドは
[
composer asset plugin
](
https://github.com/francoispluchino/composer-asset-plugin/
)
をインストールします。
最初のコマンドは
[
composer asset plugin
](
https://github.com/francoispluchino/composer-asset-plugin/
)
をインストールします。
これにより、Composer を通じて bower と npm のパッケージ依存
関係を管理することが出来るようになり
ます。
これにより、Composer を通じて bower と npm の依存パッケージ
を管理することが出来るように
なります。
このコマンドは全体で一度だけ走らせれば十分です。
このコマンドは全体で一度だけ走らせれば十分です。
第二のコマンドは
`basic`
という名前のディレクトリに Yii をインストールします。
第二のコマンドは
`basic`
という名前のディレクトリに Yii をインストールします。
必要なら別のディレクトリ名を選ぶことも出来ます。
必要なら別のディレクトリ名を選ぶことも出来ます。
...
@@ -38,9 +38,9 @@ Composer 縺後う繝ウ繧ケ繝医繝ォ縺輔l縺溘i縲√え繧ァ繝悶°繧峨い繧ッ繧サ繧ケ縺ァ縺阪
...
@@ -38,9 +38,9 @@ Composer 縺後う繝ウ繧ケ繝医繝ォ縺輔l縺溘i縲√え繧ァ繝悶°繧峨い繧ッ繧サ繧ケ縺ァ縺阪
> これは、Comoser が Github API の転送レート制限にひっかかったためです。
> これは、Comoser が Github API の転送レート制限にひっかかったためです。
> Composer は全てのパッケージのための大量の情報を Github から読み出さなければならないので、こうなるのは普通のことです。
> Composer は全てのパッケージのための大量の情報を Github から読み出さなければならないので、こうなるのは普通のことです。
> Github にログインすると API の転送レート制限が緩和され、Composer が仕事を続けることが出来るようになります。
> Github にログインすると API の転送レート制限が緩和され、Composer が仕事を続けることが出来るようになります。
>
更なる詳細につ
いては、[Composer documentation](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens) を参照してください。
>
詳
細については、[Composer documentation](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens) を参照してください。
> Tip|ヒント: Yii の最新の開発バージョンをインストールしたい場合は、[stability option](https://getcomposer.org/doc/04-schema.md#minimum-stability) を追加した次のコマンドを代りに使うことが出来ます:
> Tip|ヒント: Yii の最新の開発バージョンをインストールしたい場合は、[stability option](https://getcomposer.org/doc/04-schema.md#minimum-stability) を追加した次のコマンドを代りに使うことが出来ます。
>
>
> composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
> composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
>
>
...
@@ -50,12 +50,12 @@ Composer 縺後う繝ウ繧ケ繝医繝ォ縺輔l縺溘i縲√え繧ァ繝悶°繧峨い繧ッ繧サ繧ケ縺ァ縺阪
...
@@ -50,12 +50,12 @@ Composer 縺後う繝ウ繧ケ繝医繝ォ縺輔l縺溘i縲√え繧ァ繝悶°繧峨い繧ッ繧サ繧ケ縺ァ縺阪
アーカイブファイルからインストールする<a name="installing-from-archive-file"></a>
アーカイブファイルからインストールする<a name="installing-from-archive-file"></a>
--------------------------------------
--------------------------------------
アーカイブファイルから Yii をインストールするには、三つのステップを踏みます:
アーカイブファイルから Yii をインストールするには、三つのステップを踏みます。
1.
[
yiiframework.com
](
http://www.yiiframework.com/download/
)
からアーカイブファイルをダウンロードする。
1.
[
yiiframework.com
](
http://www.yiiframework.com/download/
)
からアーカイブファイルをダウンロードする。
2.
ダウンロードしたファイルをウェブからアクセスできるフォルダーに展開する。
2.
ダウンロードしたファイルをウェブからアクセスできるフォルダーに展開する。
3.
`config/web.php`
ファイルを編集して、
`cookieValidationKey`
というコンフィギュレーション項目に秘密キーを入力する
3.
`config/web.php`
ファイルを編集して、
`cookieValidationKey`
というコンフィギュレーション項目に秘密キーを入力する
(Composer を使って Yii をインストールするときは、これは自動的に実行されます):
(Composer を使って Yii をインストールするときは、これは自動的に実行されます)。
```
php
```
php
// !!! 下記に(もし空白なら)秘密キーを入力する - これはクッキー検証のために必要
// !!! 下記に(もし空白なら)秘密キーを入力する - これはクッキー検証のために必要
...
@@ -69,25 +69,25 @@ Composer 縺後う繝ウ繧ケ繝医繝ォ縺輔l縺溘i縲√え繧ァ繝悶°繧峨い繧ッ繧サ繧ケ縺ァ縺阪
...
@@ -69,25 +69,25 @@ Composer 縺後う繝ウ繧ケ繝医繝ォ縺輔l縺溘i縲√え繧ァ繝悶°繧峨い繧ッ繧サ繧ケ縺ァ縺阪
上記のインストール方法の説明は
Yii
のインストールの仕方を示すものですが
、
それは同時にそのままで動作する基本的なウェブアプリケーションを作成するものでもあります
。
上記のインストール方法の説明は
Yii
のインストールの仕方を示すものですが
、
それは同時にそのままで動作する基本的なウェブアプリケーションを作成するものでもあります
。
これは小さなプロジェクトを開始するのに良い方法です
。
あるいは
Yii
の学習を始めたばかりの場合にもこれで良いでしょう
。
これは小さなプロジェクトを開始するのに良い方法です
。
あるいは
Yii
の学習を始めたばかりの場合にもこれで良いでしょう
。
しかし
、
他のインストールオプションも利用可能です
:
しかし
、
他のインストールオプションも利用可能です
。
*
コアフレームワークだけをインストールし
、
アプリケーション全体を一から構築したい場合は
、
*
コアフレームワークだけをインストールし
、
アプリケーション全体を一から構築したい場合は
、
[
アプリケーションを一から構築する
](
tutoria
l
-
start
-
from
-
scratch
.
md
)
[
アプリケーションを一から構築する
](
tutorial
-
start
-
from
-
scratch
.
md
)
で説明されている指示に
従うことが出来ます
。
で説明されている指示に従うことが出来ます
。
*
もっと洗練された
、
チーム開発環境により適したアプリケーションから開始したい場合は
、
*
もっと洗練された
、
チーム開発環境により適したアプリケーションから開始したい場合は
、
[
アドバンストアプリケーションテンプレート
](
tutorial
-
advanced
-
app
.
md
)
[
アドバンストアプリケーションテンプレート
](
tutorial
-
advanced
-
app
.
md
)
をインストールすることを
考慮することが出来ます
。
をインストールすることを考慮することが出来ます
。
インストールを検証する
<
a
name
=
"verifying-installation"
></
a
>
インストールを検証する
<
a
name
=
"verifying-installation"
></
a
>
----------------------
----------------------
インストール完了後
、
ブラウザで下記の
URL
によってインストールされた
Yii
アプリケーションにアクセスすることが出来ます
:
インストール完了後
、
ブラウザで下記の
URL
によってインストールされた
Yii
アプリケーションにアクセスすることが出来ます
。
```
```
http://localhost/basic/web/index.php
http://localhost/basic/web/index.php
```
```
この URL は、あなたが Yii を ウェブサーバのドキュメントルートディレクトリの下の `basic` という名前のディレクトリにインストールしたこと、
この URL は、あなたが Yii を ウェブサーバのドキュメントルートディレクトリの下の `basic` という名前のディレクトリにインストールしたこと、
そしてウェ
ブサーバがローカルマシン (`localhost`) で走つていると想定しています。
そして、ウ
ェブサーバがローカルマシン (`localhost`) で走っていることを想定しています。
インストールされた環境に合うように URL を変更してください。
インストールされた環境に合うように URL を変更してください。


...
@@ -97,7 +97,7 @@ http://localhost/basic/web/index.php
...
@@ -97,7 +97,7 @@ http://localhost/basic/web/index.php
最低限の必要条件を満たしているかどうかは、次の方法のどちらかによってチェックすることが出来ます:
最低限の必要条件を満たしているかどうかは、次の方法のどちらかによってチェックすることが出来ます:
* ブラウザを使って `http://localhost/basic/requirements.php` という URL にアクセスする。
* ブラウザを使って `http://localhost/basic/requirements.php` という URL にアクセスする。
* 次のコマンドを実行する:
* 次のコマンドを実行する。
```
```
cd basic
cd basic
...
@@ -106,7 +106,8 @@ http://localhost/basic/web/index.php
...
@@ -106,7 +106,8 @@ http://localhost/basic/web/index.php
Yii の最低必要条件を満たすように PHP のインストールを構成しなければなりません。
Yii の最低必要条件を満たすように PHP のインストールを構成しなければなりません。
最も重要なことは、PHP 5.4 以上でなければならないということです。
最も重要なことは、PHP 5.4 以上でなければならないということです。
また、アプリケーションがデータベースを必要とする場合は、[PDO PHP 拡張](http://www.php.net/manual/ja/pdo.installation.php) および対応するデータベースドライバ (MySQL データベースのための `pdo_mysql` など) をインストールしなければなりません。
また、アプリケーションがデータベースを必要とする場合は、[PDO PHP 拡張](http://www.php.net/manual/ja/pdo.installation.php) および対応するデータベースドライバ
(MySQL データベースのための `pdo_mysql` など) をインストールしなければなりません。
ウェブサーバを構成する<a name="configuring-web-servers"></a>
ウェブサーバを構成する<a name="configuring-web-servers"></a>
...
@@ -114,11 +115,13 @@ Yii 縺ョ譛菴主ソヲ∵擅莉カ繧呈コ縺溘☆繧医≧縺ォ PHP 縺ョ繧、繝ウ繧ケ繝医繝ォ繧呈ァ区
...
@@ -114,11 +115,13 @@ Yii 縺ョ譛菴主ソヲ∵擅莉カ繧呈コ縺溘☆繧医≧縺ォ PHP 縺ョ繧、繝ウ繧ケ繝医繝ォ繧呈ァ区
> Info|情報: もし Yii の試運転をしているだけで、実運用のサーバに配置する意図がないのであれば、当面、この項は飛ばしても構いません。
> Info|情報: もし Yii の試運転をしているだけで、実運用のサーバに配置する意図がないのであれば、当面、この項は飛ばしても構いません。
上記の説明に従ってインストールされたアプリケーションは、[Apache HTTP サーバ](http://httpd.apache.org/) と [Nginx HTTP サーバ](http://nginx.org/) のどちらでも、また、Windows、Mac OS X、Linux のどれでも、PHP 5.4 以上を走らせている環境であれば、そのままの状態で動作するはずです。
上記の説明に従ってインストールされたアプリケーションは、[Apache HTTP サーバ](http://httpd.apache.org/) と [Nginx HTTP サーバ](http://nginx.org/) のどちらでも、
また、Windows、Mac OS X、Linux のどれでも、PHP 5.4 以上を走らせている環境であれば、そのままの状態で動作するはずです。
Yii 2.0 は、また、facebook の [HHVM](http://hhvm.com/) とも互換性があります。
Yii 2.0 は、また、facebook の [HHVM](http://hhvm.com/) とも互換性があります。
ただし HHVM がネイティブの PHP とは異なる振舞いをする特殊なケースもいくつかありますので、HHVM を使うときはいくらか余分に注意を払う必要があります。
ただし HHVM がネイティブの PHP とは異なる振舞いをする特殊なケースもいくつかありますので、HHVM を使うときはいくらか余分に注意を払う必要があります。
実運用のサーバでは、`http://www.example.com/basic/web/index.php` の代りに `http://www.example.com/index.php` という URL でアプリケーションにアクセス出来るようにウェブサーバを設定したいと思うかもしれません。
実運用のサーバでは、`http://www.example.com/basic/web/index.php` の代りに `http://www.example.com/index.php` という URL
でアプリケーションにアクセス出来るようにウェブサーバを設定したいと思うかもしれません。
そういう設定をするためには、ウェブサーバのドキュメントルートを `basic/web` フォルダに向けることが必要になります。
そういう設定をするためには、ウェブサーバのドキュメントルートを `basic/web` フォルダに向けることが必要になります。
また、[ルーティングと URL 生成](runtime-routing.md) の節で述べられているように、URL から `index.php` を隠したいと思うかも知れません。
また、[ルーティングと URL 生成](runtime-routing.md) の節で述べられているように、URL から `index.php` を隠したいと思うかも知れません。
この節では、これらの目的を達するために Apache または Nginx サーバをどのように設定すれば良いかを学びます。
この節では、これらの目的を達するために Apache または Nginx サーバをどのように設定すれば良いかを学びます。
...
@@ -128,7 +131,7 @@ Yii 2.0 縺ッ縲√∪縺溘’acebook 縺ョ [HHVM](http://hhvm.com/) 縺ィ繧ゆコ呈鋤諤ァ縺後
...
@@ -128,7 +131,7 @@ Yii 2.0 縺ッ縲√∪縺溘’acebook 縺ョ [HHVM](http://hhvm.com/) 縺ィ繧ゆコ呈鋤諤ァ縺後
> Info|情報: ウェブサーバの設定を修正する権限のない共用ホスティング環境でアプリケーションが走る場合でも、
> Info|情報: ウェブサーバの設定を修正する権限のない共用ホスティング環境でアプリケーションが走る場合でも、
セキュリティ強化のためにアプリケーションの構造を調整することが出来ます。
セキュリティ強化のためにアプリケーションの構造を調整することが出来ます。
更なる詳細につ
いては、[共有ホスティング環境](tutorial-shared-hosting.md) の節を参照してください。
詳
細については、[共有ホスティング環境](tutorial-shared-hosting.md) の節を参照してください。
### 推奨される Apache の構成<a name="recommended-apache-configuration"></a>
### 推奨される Apache の構成<a name="recommended-apache-configuration"></a>
...
@@ -157,8 +160,8 @@ DocumentRoot "path/to/basic/web"
...
@@ -157,8 +160,8 @@ DocumentRoot "path/to/basic/web"
### 推奨される Nginx の構成<a name="recommended-nginx-configuration"></a>
### 推奨される Nginx の構成<a name="recommended-nginx-configuration"></a>
[Nginx](http://wiki.nginx.org/) を使うためには、PHP を [FPM SAPI](http://jp1.php.net/install.fpm) としてインストールしていなければなりません。
[Nginx](http://wiki.nginx.org/) を使うためには、PHP を [FPM SAPI](http://jp1.php.net/install.fpm) としてインストールしていなければなりません。
下記の設定を使うことができます (`path/to/basic/web` の部分を `basic/web` の実際のパスに置き換え、
下記の設定を使うことができます (`path/to/basic/web` の部分を `basic/web` の実際のパスに置き換え、`mysite.local`
`mysite.local`
を実際のサーバのホスト名に置き換えてください)。
を実際のサーバのホスト名に置き換えてください)。
```
```
server {
server {
...
@@ -200,8 +203,7 @@ server {
...
@@ -200,8 +203,7 @@ server {
}
}
```
```
この構成を使う場合は、同時に
`php.ini`
ファイルで
`cgi.fix_pathinfo=0`
も設定して、
この構成を使う場合は、同時に
`php.ini`
ファイルで
`cgi.fix_pathinfo=0`
も設定して、多数の不要な
`stat()`
の呼び出しを避けるべきです。
多数の不要な
`stat()`
の呼び出しを避けるべきです。
また、HTTPS サーバを走らせている場合には、安全な接続であることを Yii が正しく検知できるように、
また、HTTPS サーバを走らせている場合には、安全な接続であることを Yii が正しく検知できるように、
`fastcgi_param HTTPS on;
`
`fastcgi_param HTTPS on;`
を追加しなければならないことにも注意を払ってください。
を追加しなければならないことにも注意を払ってください。
docs/guide-ja/start-looking-ahead.md
View file @
8fb4ce5d
...
@@ -2,16 +2,15 @@
...
@@ -2,16 +2,15 @@
==============
==============
「はじめよう」の章全体を読み通したなら、いまやあなたは、完全な Yii のアプリケーションを作成したことがある、と言うことが出来ます。
「はじめよう」の章全体を読み通したなら、いまやあなたは、完全な Yii のアプリケーションを作成したことがある、と言うことが出来ます。
その過程で、あなたは HTML フォームを通じてユーザからデータを取得することや、データベースからデータを取得すること、また、ページ付けをしてデータを表示することなど、
その過程で、あなたは HTML フォームを通じてユーザからデータを取得することや、データベースからデータを取得すること、また、ページ付けをしてデータを表示することなど、必要とされることが多いいくつかの機能を実装する方法を学びました。
必要とされることが多いいくつかの機能を実装する方法を学びました。
また、
[
Gii
](
tool-gii.md
)
を使ってコードを自動的に生成する方法も学びました。
また、
[
Gii
](
tool-gii.md
)
を使ってコードを自動的に生成する方法も学びました。
Gii をコード生成に使うと、ウェブ開発のプロセスの大部分が、いくつかのフォームに入力していくだけの簡単な仕事になります。
Gii をコード生成に使うと、ウェブ開発のプロセスの大部分が、いくつかのフォームに入力していくだけの簡単な仕事になります。
この節では、Yii フレームワークを使うときの生産性を更に高めるために利用できるリソースについてまとめます。
この節では、Yii フレームワークを使うときの生産性を更に高めるために利用できるリソースについてまとめます。
*
ドキュメント
*
ドキュメント
-
[
公式
ガイド
](
http://www.yiiframework.com/doc-2.0/guide-README.html
)
:
-
[
決定版
ガイド
](
http://www.yiiframework.com/doc-2.0/guide-README.html
)
:
Definitive(
最も確実
な) という名前が示すように、このガイドは Yii がどのように動作すべきものかを正確に記述し、
Definitive(
決定的
な) という名前が示すように、このガイドは 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
)
:
...
@@ -21,7 +20,7 @@ Gii をコード生成に使うと、ウェブ開発のプロセスの大部分
...
@@ -21,7 +20,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/
)
:
...
...
docs/guide-ja/start-workflow.md
View file @
8fb4ce5d
...
@@ -3,20 +3,17 @@
...
@@ -3,20 +3,17 @@
Yii のインストールが終ると、実際に動く Yii のアプリケーションにアクセスすることが出来るようになります。
Yii のインストールが終ると、実際に動く Yii のアプリケーションにアクセスすることが出来るようになります。
その URL は、
`http://hostname/basic/web/index.php`
あるいは
`http://hostname/index.php`
など、設定によって異なります。
その URL は、
`http://hostname/basic/web/index.php`
あるいは
`http://hostname/index.php`
など、設定によって異なります。
この節では、アプリケーションに組み込み済みの機能を紹介し、コードがどのように組織されているか、
この節では、アプリケーションに組み込み済みの機能を紹介し、コードがどのように組織されているか、そして、一般にアプリケーションがリクエストをどのように処理するかを説明します。
そして、一般にアプリケーションがリクエストをどのように処理するかを説明します。
> Info|情報: 話を簡単にするために、この「始めよう」のチュートリアルを通じて、
> Info|情報: 話を簡単にするために、この「始めよう」のチュートリアルを通じて、`basic/web` をウェブサーバのドキュメントルートとして設定したと仮定します。
`basic/web`
をウェブサーバのドキュメントルートとして設定したと仮定します。そして、
そして、アプリケーションにアクセスするための URL は
`http://hostname/index.php`
またはそれに似たものになるように設定したと仮定します。
アプリケーションにアクセスするための URL は
`http://hostname/index.php`
またはそれに似たものになるように
設定したと仮定します。
必要に応じて、説明の中の URL を読み替えてください。
必要に応じて、説明の中の URL を読み替えてください。
機能<a name="functionality"></a>
機能<a name="functionality"></a>
----
----
インストールされた基本的なアプリケーションは
4つのページを持っています:
インストールされた基本的なアプリケーションは
四つのページを持っています。
*
ホームページ:
`http://hostname/index.php`
の URL にアクセスすると表示されます。
*
ホームページ:
`http://hostname/index.php`
の URL にアクセスすると表示されます。
*
「について」のページ。
*
「について」のページ。
...
@@ -29,21 +26,21 @@ Yii のインストールが終ると、実際に動く Yii のアプリケー
...
@@ -29,21 +26,21 @@ Yii のインストールが終ると、実際に動く Yii のアプリケー
ヘッダには、異なるページ間を行き来することを可能にするメインメニューバーがあります。
ヘッダには、異なるページ間を行き来することを可能にするメインメニューバーがあります。
ブラウザのウィンドウの下部にツールバーがあることにも気がつくはずです。
ブラウザのウィンドウの下部にツールバーがあることにも気がつくはずです。
これは Yii によって提供される便利な
[
デバッグツールバー
](
tool-debugger.md
)
であり、ログメッセージ、
これは Yii によって提供される便利な
[
デバッグツールバー
](
tool-debugger.md
)
レスポンスのステータス、データベースクエリの実行状況、その他、たくさんのデバッグ情報を記録・表示するものです。
であり、ログメッセージ、
レスポンスのステータス、データベースクエリの実行状況、その他、たくさんのデバッグ情報を記録・表示するものです。
アプリケーションの構造<a name="application-structure"></a>
アプリケーションの構造<a name="application-structure"></a>
----------------------
----------------------
アプリケーションにとって最も重要なディレクトリとファイルは (アプリケーションのルートディレクトリが
`basic`
だと仮定すると) 以下の通りです
:
アプリケーションにとって最も重要なディレクトリとファイルは (アプリケーションのルートディレクトリが
`basic`
だと仮定すると) 以下の通りです
。
```
```
basic/ アプリケーションのベースパス
basic/ アプリケーションのベースパス
composer.json Composer によって使用される。パッケージ情報を記述
composer.json Composer によって使用される。パッケージ情報を記述
config/ アプリケーションその他の
コンフィギュレーション
を格納
config/ アプリケーションその他の
構成情報
を格納
console.php コンソールアプリケーションの
コンフィギュレーション
console.php コンソールアプリケーションの
構成情報
web.php ウェブアプリケーションの
コンフィギュレーション
web.php ウェブアプリケーションの
構成情報
commands/ コンソールコマンドのクラスを格納
commands/ コンソールコマンドのクラスを格納
controllers/ コントローラのクラスを格納
controllers/ コントローラのクラスを格納
models/ モデルのクラスを格納
models/ モデルのクラスを格納
...
@@ -56,7 +53,7 @@ basic/ アプリケーションのベースパス
...
@@ -56,7 +53,7 @@ basic/ アプリケーションのベースパス
yii Yii コンソールコマンド実行スクリプト
yii Yii コンソールコマンド実行スクリプト
```
```
一般に、アプリケーションのファイルは二種類に分けることが出来ます
:
`basic/web`
の下にあるファイルとその他のディレクトリの下にあるファイルです。
一般に、アプリケーションのファイルは二種類に分けることが出来ます
。すなわち、
`basic/web`
の下にあるファイルとその他のディレクトリの下にあるファイルです。
前者は HTTP で (すなわちブラウザで) 直接にアクセスすることが出来ますが、後者は直接のアクセスは出来ませんし、許可すべきでもありません。
前者は HTTP で (すなわちブラウザで) 直接にアクセスすることが出来ますが、後者は直接のアクセスは出来ませんし、許可すべきでもありません。
Yii は
[
モデル・ビュー・コントローラ (MVC)
](
http://wikipedia.org/wiki/Model-view-controller
)
デザインパターンを実装していますが、それが上記のディレクトリ構成にも反映されています。
Yii は
[
モデル・ビュー・コントローラ (MVC)
](
http://wikipedia.org/wiki/Model-view-controller
)
デザインパターンを実装していますが、それが上記のディレクトリ構成にも反映されています。
...
@@ -81,7 +78,7 @@ Yii は [モデル・ビュー・コントローラ (MVC)](http://wikipedia.org/
...
@@ -81,7 +78,7 @@ Yii は [モデル・ビュー・コントローラ (MVC)](http://wikipedia.org/


1.
ユーザが
[
エントリスクリプト
](
structure-entry-scripts.md
)
`web/index.php`
に対してリクエストを出します。
1.
ユーザが
[
エントリスクリプト
](
structure-entry-scripts.md
)
`web/index.php`
に対してリクエストを出します。
2.
エントリスクリプトはアプリケーションの
[
コンフィギュレーション
](
concept-configurations.md
)
を読み出して、
2.
エントリスクリプトはアプリケーションの
[
構成情報
](
concept-configurations.md
)
を読み出して、
リクエストを処理する
[
アプリケーション
](
structure-applications.md
)
のインスタンスを作成します。
リクエストを処理する
[
アプリケーション
](
structure-applications.md
)
のインスタンスを作成します。
3.
アプリケーションは、
[
リクエスト
](
runtime-requests.md
)
アプリケーションコンポーネントの助力を得て、
3.
アプリケーションは、
[
リクエスト
](
runtime-requests.md
)
アプリケーションコンポーネントの助力を得て、
リクエストされた
[
ルート
](
runtime-routing.md
)
を解決します。
リクエストされた
[
ルート
](
runtime-routing.md
)
を解決します。
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment