フロントコントローラー

はじめに

Envi PHP は、MVCモデルにおけるフロントコントローラパターンで実装されています。 そのため、リクエストを集中して受けるPHPをドキュメントルート内に配置しなければなりません。

そのファイルのことを、Envi PHPでは単にフロントコントローラーと呼んでいます。

サンプル

以下に最低限の設定項目を入れた、フロントコントローラーのサンプルを提示します。

これは、envi init-app <app_key>コマンドを実行した際、すべてのパスを自動で解析し、作成されます。

デフォルトの位置からパスを変更した場合は、各種パスの変更を行います。

特に環境情報をおいてある、ファイルのパスは、プロジェクトの管理下からも、EnviPHPの管理下からも外しておいた方が、運用が楽になります。

EnviPHPのパッケージ更新時に、環境が切り替わってしまう事故を未然に防ぐことが出来ます。

デバッグモードのOnOffもここで指定することに注意して下さい。


<?php

// 実行時間計測用(defaultでいい場合は省略可能)
define('LW_START_MTIMESTAMP'microtime(true));

// コンフィグファイルのパス(defaultでいい場合は省略可能)
define('ENVI_MVC_APPKEY_PATH',     realpath('%%project_dir%%config/').DIRECTORY_SEPARATOR);

// キャッシュディレクトリのパス(defaultでいい場合は省略可能)
define('ENVI_MVC_CACHE_PATH',     realpath('%%project_dir%%cache/').DIRECTORY_SEPARATOR);

// 環境ファイルのパス(defaultでいい場合は省略可能)
define('ENVI_SERVER_STATUS_CONF'realpath('%%base_dir%%env/ServerStatus.conf'));

// デバッグのOnOf
$debug true;

// Envi3の読み込み
require('%%envi_dir%%Envi.php');

try {
    
Envi::dispatch('%%app_name%%'$debug);
} catch (
redirectException $e) {

} catch (
killException $e) {

} catch (
PDOException $e) {
    if (
$debug) {
        
var_dump($e);
    }
} catch (
Exception $e) {
    if (
$debug) {
        
var_dump($e);
    }
}