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
75914f82
Commit
75914f82
authored
Nov 28, 2014
by
Nobuo Kihara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs/guide-ja/start-gii.md - revised [ci skip]
parent
a081ae5e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
33 deletions
+30
-33
start-gii.md
docs/guide-ja/start-gii.md
+30
-33
No files found.
docs/guide-ja/start-gii.md
View file @
75914f82
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`
ボタンをクリックして、生成されようとしているコードと既存のバージョンの
ボタンをクリックして、生成されようとしているコードと既存のバージョンの違いを見てください。
違いを見てください。
![
Model Generator のプレビュー
](
images/start-gii-model-preview.png
)
![
Model Generator のプレビュー
](
images/start-gii-model-preview.png
)
既存のファイルを上書きしようとしているときは、"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 縺ョ繧、繝ウ繝ャ繧
![
CRUD Generator のプレビュー
](
images/start-gii-crud-preview.png
)
![
CRUD Generator のプレビュー
](
images/start-gii-crud-preview.png
)
以前に(ガイドのデータベースの節で)
`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" ボタンをクリックすると、新しい国データを作成するためのフォームが利用に供されます。
![
国リストのデータグリッド
](
images/start-gii-country-grid.png
)
![
国リストのデータグリッド
](
images/start-gii-country-grid.png
)
![
国データを更新する
](
images/start-gii-country-update.png
)
![
国データを更新する
](
images/start-gii-country-update.png
)
下記が 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>
...
...
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