Yii ブログシステム作成(4)

スキャフォールディング(足場組み)

■Giiのインストール

blog/protected/config/main.php 20行目付近を編集

	'modules'=>array(
		// ↓↓↓コメントアウトする↓↓↓
		'gii'=>array(
			'class'=>'system.gii.GiiModule',
			'password'=>'パスワードを設定',
			// If removed, Gii defaults to localhost only. Edit carefully to taste.
			'ipFilters'=>array('127.0.0.1','::1'),
			//'ipFilters'=>array('*'),
		),
	),

■モデルの生成

http://localhost/blog/index.php?r=gii/にアクセスしてパスワードを入力する。

『Model Generator』のリンクをクリックして下記モデルを生成する。

tbl_comment
tbl_lookup
tbl_post
tbl_tag
tbl_user

yii020

モデル生成後にファイルが追加される

yii021

『/models/User.php』は"CActiveRecord"を継承する『User』クラスを含む。このクラスは『tbl_user』テーブルにアクセスするのに利用される。
『/models/Post.php』は"CActiveRecord"を継承する『Post』クラスを含む。このクラスは『tbl_post』テーブルにアクセスするのに利用される。
『/models/Tag.php』は"CActiveRecord"を継承する『Tag』クラスを含む。このクラスは『tbl_tag』テーブルにアクセスするのに利用される。
『/models/Comment.php』は"CActiveRecord"を継承する『Comment』クラスを含む。このクラスは『tbl_comment』テーブルにアクセスするのに利用される。
『/models/Lookup.php』は"CActiveRecord"を継承する『Lookup』クラスを含む。このクラスは『tbl_lookup』テーブルにアクセスするのに利用される。

■CRUD操作の実装

『Crud Generator』のリンクをクリックして下記のコントローラーを生成する

Post
Comment

yii022

コントローラーファイルが追加される

yii023

『/controllers/PostController.php』は"PostController"クラスを含む。このコントローラーは記事のCRUD操作を受け持つ。
『/controllers/CommentController.php』は"CommentController"クラスを含む。このコントローラはコメントのCRUD操作を受け持つ。

ビューフォルダが追加される

yii024

『/views/post/create.php』は新しい記事を作成するHTMLフォームを表示するビューファイル。
『/views/post/update.php』は記事を更新するHTMLフォームを表示するビューファイル。
『/views/post/view.php』は記事の詳細情報を表示するビューファイル。
『/views/post/index.php』は記事の一覧を表示するビューファイル。
『/views/post/admin.php』は管理コマンドと一緒に表形式で記事を表示するビューファイル。
『/views/post/_form.php』は部分ビューファイルであり『/views/post/create.php』と『views/post/update.php』に埋め込まれる。
これは記事情報を入力するHTMLフォームを表示する
『/views/post/_view.php』は部分ビューファイルであり『/views/post/index.php』で単一の記事の簡単なビューを表示する。
『/views/post/_search.php』は部分ビューファイルであり、『/views/post/admin.php』で検索フォームを表示する。

同様に上記一式がコメント用にも生成される。

■記事一覧画面

http://localhost/blog/index.php?r=post

yii025

■コメント一覧画面

http://localhost/blog/index.php?r=comment

yii026

■処理の流れ

1.ユーザがURL http://ドメイン/blog/index.php?r=post をリクエスト。

2.ウェブサーバにより、エントリスクリプトが実行され、リクエストを処理するためにアプリケーションインスタンスが作成され初期化される。

3.アプリケーションはPostControllerのインスタンスを作成し、実行する。

4.PostControllerインスタンスは要求されたindexアクションをactionIndex()メソッドを呼ぶことで実行する。

5.actionIndex()メソッドはデータベースに問合せを行い、最近の記事のリストを取り出す。

6.actionIndex()メソッドは、記事データをindexビューで描画する。

参考サイト:
http://www.yiiframework.com/doc/blog/1.1/ja/prototype.scaffold

Comments are closed.