チュートリアル - フロントコントローラ

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();
?>

フロントコントローラの実装はこれで終わりです。