はじめてのKohana (2) : コントローラとビューの基本
この記事は賞味期限切れです。(更新から1年が経過しています)
「はじめてのKohana」の第二回目は、コントローラとビューのごく基本的な使い方を紹介します。
ルーティングとコントローラ
まず、前記事で表示された「hello, world !」の実体はどこにあるのか、から見てみましょう。 bootstrap.php を見てみると、末尾に次のような設定記述があります
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));
詳しい説明は省きますが、ここでは全てのパラメータを省略してアクセスされた場合のルーティングの設定をしています。 初期設定では、”welcome” コントローラの “index” アクションを呼ぶ設定となっています。 ではそのコントローラはどこに格納されているかというと、
/application/classes/controller/welcome.php
ここにあるわけです。コントローラは全て、このディレクトリに設置する決まりとなっています。 さらにファイルの中身を見てみます。
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Welcome extends Controller {
public function action_index()
{
$this->response->body('hello, world!');
}
} // End Welcome
中身を見ると、どのような命名規則になっているのか大体わかりますね。 このルールに則ってコントローラ・アクションを探し、無かった場合は404を返す仕組みです。
- ファイル名 : “welcome.php” ([name].php)
- コントローラ名 : “Controller_Welcome” (Controller_[Name])
- アクション名 : “action_index” (action_[name])
例えば /foo/bar でアクセスさせたい場合は、
/application/classes/controller/foo.php
を設置し、内容を次のようにします。
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Foo extends Controller {
public function action_bar()
{
// do something
}
}
ビューを使って出力する
上の例では文字列をそのまま出力していますが、Webアプリケーションを作る場合はビューファイルを使用します。
ビューファイルの格納場所は
/application/views/
です。ここでは名前を “foo” として、 foo.php を作ってみましょう。
/application/views/foo.php
中身は適当なHTMLを記述しておきます。
(実際は値を受け取る等しますが、それはまた別の記事で)
Hello !!
こんにちは!
次に、設置したビューファイルをコントローラから出力してみます。
先程作ったfooコントローラのbarアクションを編集しましょう。
public function action_bar()
{
$view = View::factory("foo");
$this->response->body($view);
}
View::factory(“[view_name]”); でビューファイルを基にしたビューインスタンスが生成され、
それを元に $this->response->body() で出力をします。
再度 /foo/bar にアクセスすると、設置したビューファイルの中身が出力されるはずです。
まとめ
Kohanaのコントローラとビューの基本的な点をまとめました。
次回は、コントローラについてもう少し詳しくご紹介します。
» もくじ
- Hello World !
- コントローラとビューの基本
- コントローラ
- ルーティング
- ビュー
- モデルとデータベース
- バリデーション
コメント