PHP5.2以上をターゲットとするWebアプリケーションフレームワーク。「タスク」と「イベント」というこれまでにない全く新しい概念を用いて再利用可能なアプリケーションを構築することができるようデザインされています。 また、各コンポーネントはPHP5のインタフェースを利用しているので、必要に応じてデフォルトの実装を変更することができるため、多様なシステムを最小の労力で構成することが可能です。
-[core] Factoryクラスにユーザイベントを作成するメソッドcreateUserEvent()を追加しました。
-[interface] ITaskインタフェースにガード条件を取得するgetGuardConditions()とイベントフィルタを取得するgetEventFilters()、および
ポストアクションを取得するgetPostActions()メソッドを追加しました。
-イベントディスパッチの方法が変わりました。最初にプロシージャのtasksエントリの順にhttp_requestシステムイベントが配信されます。
このとき、タスク内のproccessEventメソッド内でユーザイベントを作成し、返り値として指定するとそのイベントがイベントキューに登録
されます。タスクマネージャはイベントがキューにある間、登録されている各タスクにイベントを配信し続けようとします。タスク側では
設定ファイルにevent_filtersを指定することで受け入れ可能なイベント名を指定することができ、guard_conditionsを指定することで
他のタスクの状態によって処理の可否を指定できます。guard_conditionsの書式は以下の通りです。
guard_conditions.(タスク名).(プロパティ名) = (型):(値)
型: i => 整数 b => ブール値 s => 文字列値 (省略) => 文字列値
また同様にタスク設定にpost_actions.(イベント名)を指定するとprocessEventの処理後に行うポストアクションを指定できます。指定可能
な値は、remove_task/remove_event で、それぞれ実行中のタスクとイベントを削除します。
デフォルトのタスクマネージャはイベントキューが空になるか、タスクリストが空になるまでイベントループを実行します。
-イベントキューが空になる
-タスクリストが空になる
-イベントループ実行カウンタがプロファイル設定値TM_MAX_EVENT_LOOPで指定される最大イベントループ実行数を超えた場合(デフォルトは100回)
-イベントループ実行時間がプロファイル設定値TM_MAX_EVENT_TIMEで指定される最大実行時間を超えた場合(デフォルトは10秒)
-[logger] ログ文字列をコンソールに出力するConsoleLoggerを追加しました。