チュートリアル - フロントコントローラ
Moonyを動作させるためには、フロントコントローラが必要です。フロントコントローラには3つの役割があります。
- PATH_INFOを受け取ること
- Moonyを起動するための設定を行うこと
- Moonyのインスタンスを生成し、起動させること
例えば、フロントコントローラをindex.phpという名称で作成したとします。/index.php/hoge.htmlというURLにアクセスがあった場合、PATH_INFOには/hoge.htmlという文字列が格納されます。このPATH_INFOを元に、Moonyはアクション名を決定、該当するアクションを実行することになります。
Moonyの起動設定は連想配列を用いて行います。設定されるべき内容は下表の通りです。
キー | 設定内容 | 設定型 | 必須/任意 |
---|---|---|---|
action_dir | アクションクラスの格納先 | string | 必須 |
template_dir | テンプレートファイルの格納先 | string | 必須 |
compile_dir | コンパイルされたテンプレートファイルの格納先 | string | 必須 |
log_dir | テキストログの格納先 | string | 必須 |
smarty_class | Smarty.class.phpのパス | string | 必須 |
cache_dir | テンプレートファイルのキャッシュの格納先 | string | 任意 |
config_dir | テンプレートファイルの設定ファイルの格納先 | string | 任意 |
compile_check | テンプレートファイルの更新をチェックするかどうか | boolean | 任意 |
force_compile | 常にテンプレートファイルをコンパイルするかどうか | boolean | 任意 |
以上を踏まえて、index.phpの実装例を以下に示します。
<?php require_once '/path/to/Moony.php'; $settings = array( 'action_dir' => 'app/action', 'template_dir' => 'app/template', 'compile_dir' => 'work', 'log_dir' => 'log', 'smarty_class' => '/path/to/Smarty.class.php' ); $moony =& new Moony($settings); $moony->activate(); ?>
フロントコントローラの実装はこれで終わりです。