HelloWorld(デフォルトアクション)の作成AdvertisementHelloWorldを表示するようにプログラムを作成
Mojaviでは、ウェブブラウザからドキュメントルート(ここでの例ではhttp://localhost/mojavi/)にアクセスした場合、デフォルトアクション(DefaultAction)として設定されているアクションが実行される。
デフォルトアクションは、config.phpで指定する。導入の段階では下記のように設定されている。
/**
* The action to be executed when a request is made that does not specify a
* module and action.
*/
define('DEFAULT_MODULE', 'Default');
define('DEFAULT_ACTION', 'DefaultIndex');
この指定により、DefaultモジュールにあるDefaultIndexアクションが実行される。ただし、導入段階ではDefaultIndexアクションは存在しないため、エラーとなる。 ここでDefaultIndexとして、画面にHelloWorldと表示するプログラムを作成する。 アクション(Action)の作成Mojaviでは、ウェブブラウザからURLを指定してアクセスされた場合、はじめに対応したアクションが呼ばれる。アクションでは、画面から入力されたデータの受け取りやビジネスロジック等を処理した後、任意の文字列を返すことで対応するビューを呼び出す。文字列は任意だが、mojaviにあらかじめ定義されている文字列(VIEW_SUCCESS, VIEW_INPUT, VIEW_ERROR, VIEW_ALERT等)があるので、通常はこれを利用する。 アクション名はフレームワーク側で決まっているので、それに従う。アクションの配置場所は該当モジュール内のactionsディレクトリになる(ここではmodules/Default/actions)。 アクションの命名方法 「アクション名」+Action.class.php 導入時のデフォルトアクションはDefaultIndexとして定義されているので、DefaultIndexAction.class.phpとなる。 DefaultIndexAction.php
<?php
class DefaultIndexAction extends Action
{
function execute (&$controller, &$request, &$user)
{
return VIEW_SUCCESS;
}
}
?>
クラス名は前述の通りで、Mojaviで用意されている基底アクションActionクラスを継承する。アクションが呼ばれると、executeメソッドが呼び出される。
ビュー(View)の作成アクションの実行が終了すると、画面表示を行うためにViewクラスが実行される。アクションの実行結果により、表示するビューを変えることができる。前述のアクションのexecuteメソッドでVIEW_SUCCESSという定数を返却したが、VIEW_SUCCESSにはsuccessという文字列が定義されている。この場合、以下の名前のビューが呼び出される。 アクション名View_success.class.php仮に、返却した文字列がVIEW_INPUT(input)の場合だと、呼ばれるビューはアクション名View_input.class.phpとなる。 よって、ここではDefaultIndexView_success.class.phpとなる。ビューの配置場所は該当モジュール内のviewsディレクトリになる(ここではmodules/Default/views)。 DefaultIndexView_success.class.php
<?php
class DefaultIndexView extends View
{
function & execute (&$controller, &$request, &$user)
{
$renderer = new Renderer($controller, $request, $user);
$renderer->setTemplate('DefaultIndex.tpl');
return $renderer;
}
}
?>
テンプレート(Template)の作成Mojaviでは、ページの枠組みを用意する仕組みとして、テンプレートというものを利用する。テンプレートは該当モジュール内のtemplatesディレクトリに格納しておく。テンプレートの命名は、アクションやビューと異なり自由に行うことができる。前述のDefaultIndexView_success.class.phpでは、DefaultIndex.tplというテンプレートを呼び出すように指定したので、それに従いテンプレートファイルを作成する。 DefaultIndex.tpl <html> <head> <title>HelloWorld</title> </head> <body> HelloWorld </body> </html> 完成アクション、ビュー、テンプレートが完成したら、再びブラウザからドキュメントルートにアクセスしてみると、DefaultIndexActionが呼ばれ、画面にHelloWorldと表示される。![]() 図1:動作例 Advertisement |
ショートカット・634・634ブログ ・このカテゴリのトップページに戻る ・Incubator(Pukiwiki) ・634ラボ UIコレクションギャラリー ZO-3ジェネレーター サイト検索Y!ログール |