<< Piece_Unityユーザーズマニュアル

エントリポイント

エントリポイントは、ユーザリクエストの入り目となるスクリプトです。通常、Piece_Unityでは、フロー?毎にひとつのエントリポイントを用意することになります。

複数のエントリポイントは、単一のユーザセッション?を共有するため、問題なく単一のアプリケーションを構成できます。これらは直接ユーザリクエスト?を受け付ける必要があるため、Webサーバのドキュメントルート以下に配置しなければいけません。

エントリポイントの役割

エントリポイントの最大の役割は、アプリケーションの入口の提供です。一般的なWebアプリケーションにはナビゲーションメニューや特定の画面、ブックマークなどから直接アクセスできる入口が必要とされます。開発者は、必要に応じてエントリポイントやそれから実行可能なフローを作成することになります。

エントリポイントには、他にも多くの役割があります。

Piece_Unity::dispatch()のコール

Piece_Unityのインスタンスを生成し、dispatch()をコールすることは、Piece_Unityの実行環境に対する最大の役割です。dispatch()をコールすることによって初めて、Piece_Unityのアプリケーション実行環境が稼働し、あなたのアプリケーションが動作することになります。

Piece_Unityカーネルやプラグインの設定変更

Piece_Unity_Configオブジェクトを使って、カーネルやプラグインの設定を変更することができます。例えば、下記のようなことに使うことができます。

  • Dispatcher_Simpleプラグイン?を使った場合に、イベント名を固定する。(固定しなければ、任意のイベントに対応するビューが要求される。)

PHPの設定変更

エントリポイントは、PHP自体の設定を変更する場所としても機能します。例えば、下記のようなことに使うことができます。

  • include_path1を設定する
  • エラーハンドラを設定する
  • セッション保存ディレクトリ2を設定する

エントリポイントの例

例として、サンプルアプリケーション(Piece_Examples_Basics 1.1.0)からエントリポイントのひとつを示します。

http://trac.piece-framework.com/piece-examples/browser/releases/Piece_Examples_Basics-1.1.0/web/htdocs/authenticate.php:

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

<< Piece_Unityユーザーズマニュアル