エントリポイント
エントリポイントは、ユーザリクエストの入り目となるスクリプトです。通常、Piece_Unityでは、フロー?毎にひとつのエントリポイントを用意することになります。
複数のエントリポイントは、単一のユーザセッション?を共有するため、問題なく単一のアプリケーションを構成できます。これらは直接ユーザリクエスト?を受け付ける必要があるため、Webサーバのドキュメントルート以下に配置しなければいけません。
エントリポイントの役割
エントリポイントの最大の役割は、アプリケーションの入口の提供です。一般的なWebアプリケーションにはナビゲーションメニューや特定の画面、ブックマークなどから直接アクセスできる入口が必要とされます。開発者は、必要に応じてエントリポイントやそれから実行可能なフローを作成することになります。
エントリポイントには、他にも多くの役割があります。
Piece_Unity::dispatch()のコール
Piece_Unityのインスタンスを生成し、dispatch()をコールすることは、Piece_Unityの実行環境に対する最大の役割です。dispatch()をコールすることによって初めて、Piece_Unityのアプリケーション実行環境が稼働し、あなたのアプリケーションが動作することになります。
Piece_Unityカーネルやプラグインの設定変更
Piece_Unity_Configオブジェクトを使って、カーネルやプラグインの設定を変更することができます。例えば、下記のようなことに使うことができます。
- Dispatcher_Simpleプラグイン?を使った場合に、イベント名を固定する。(固定しなければ、任意のイベントに対応するビューが要求される。)
PHPの設定変更
エントリポイントは、PHP自体の設定を変更する場所としても機能します。例えば、下記のようなことに使うことができます。
エントリポイントの例
例として、サンプルアプリケーション(Piece_Examples_Basics 1.1.0)からエントリポイントのひとつを示します。
<?php error_reporting(E_ALL); if (file_exists(dirname(__FILE__) . '/../../imports')) { set_include_path(dirname(__FILE__) . '/../../imports/pear' . PATH_SEPARATOR . dirname(__FILE__) . '/../../imports/spyc-0.2.5' ); } require_once 'Piece/Unity.php'; require_once 'Piece/Unity/Error.php'; Piece_Unity_Error::pushCallback(create_function('$error', 'var_dump($error); return ' . PEAR_ERRORSTACK_DIE . ';')); $base = dirname(__FILE__) . '/../webapp'; ini_set('session.cookie_path', str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME']))); session_save_path("$base/sessions"); $unity = &new Piece_Unity("$base/config", "$base/cache"); $unity->setConfiguration('Configurator_AppRoot', 'appRoot', dirname(__FILE__)); $unity->dispatch(); ?>
