Piece Frameworkによるブログアプリケーションの作成

第2回 Piece Frameworkの概要

この記事を読むのに必要な時間:およそ 3 分

Piece_Right

Piece_Rightは汎用のバリデーションフレームワークです。YAMLベースのバリデーション定義,豊富なビルトインバリデータ,入力フィルタ,仮想フィールドやファイナルズといった多くの特徴を持ちます。Piece_UnityにはこのPiece_Rightが統合されており,より簡単に使えるようになっています。

バリデーション定義ファイルの例

- name: firstName
  description: First Name
  required:
    message: %_description% is required
  validator:
    - name: Length
      rule:
        min: 1
        max: 255
      message: The length of %_description% must be less than 255 characters
...

Piece_Flow

Piece_Flowは先述のPiece_Unityのステートフル,セキュア,Webフローコントロール,イベントドリブン,といった特徴すべての基盤となる,Webフローエンジンと継続サーバを提供するフレームワークです。Piece_Flowを使うことで,ステートフルなプログラミングが可能になる,アプリケーションがセキュアになるといった恩恵を受けることができます。Piece_Flowは汎用のフレームワークであり,他のフレームワークと容易に統合することが可能です※1⁠。

※1
統合例としてはPiece_Unityはもちろんのこと,Zend Frameworkと統合したRevulo_Controller_Dispatcher_Flowがあります。

フロー定義ファイルの例

firstState: DisplayForm

lastState:
  name: DisplayFinish
  view: Finish
  activity:
    method: doActivityOnDisplayFinish

viewState:

  - name: DisplayForm
    view: Form
    activity:
      method: doActivityOnDisplayForm
    transition:
      - event: ProcessConfirmFormFromDisplayForm
        nextState: ProcessConfirmForm
        action:
          method: doProcessConfirmFormFromDisplayForm
...
actionState:

  - name: ProcessConfirmForm
    transition:
      - event: DisplayConfirmationFromProcessConfirmForm
        nextState: DisplayConfirmation
      - event: DisplayFormFromProcessConfirmForm
        nextState: DisplayForm
...

Stagehand_FSM

Stagehand_FSMは有限状態マシン(Finite State Machine, FSM)※2を提供します。複雑な状態を管理するようなアプリケーションやフレームワーク,ライブラリに導入することで,大量のswitch文やif文をコードから排除することができます。Stagehand_FSMはPiece_FlowのWebフローエンジンの基盤として使われています。

※2
有限オートマトン-Wikipedia

Stagehand_TestRunner

Stagehand_TestRunnerはユニットテストのためのフレームワークPHPUnitのテストを自動実行するためのスクリプトを提供します。通常PHPUnitでは自動実行をするためのクラスを手作業で構築しないといけませんが,Stagehand_TestRunnerを使うことで単にテストケースを追加するだけですべてのテストを自動実行できるようになります。Stagehand_TestRunnerは現在PHPUnit2及びPHPUnitをサポートしています。

YAML Editor

YAML EditorはKwalifyによるスキーマバリデーション機能を備えたYAMLエディタです。独自のスキーマファイルを使ってYAMLファイルを保存時に検証することができます。YAML EditorはEclipseのプラグインとして提供されています。

インストール方法についてはこちらを参照ください。

おわりに

以上で現在のPiece Frameworkを構成する全プロダクトを紹介しました。Piece Frameworkが多様なプロダクトで構成されていることがおわかり頂けたのではないでしょうか。Piece Frameworkのプロダクトは今後も増加する予定です。

最後に,近いうちにリリースが計画されている新規プロダクトPiece_IDEについて触れておきましょう。Piece_IDEはEclipseプラグインベースのPiece Framework用の統合開発環境です。Piece Frameworkを使ったアプリケーションのビジュアル開発を実現するべく日々開発が続けられています。最初のリリースでは,GUIによる画面遷移とイベントの定義を可能にする「フローデザイナー」と,Piece_Unityを使ったアプリケーションのディレクトリ構造とファイルを生成する「プロジェクト生成ウィザード」が含まれる予定です。こうご期待ください。

次回は,Piece Frameworkのインストールと動作確認に進みます。

著者プロフィール

久保敦啓(くぼあつひろ)

Piece Frameworkのアーキテクト及びプログラマー。PEARのNet_UserAgent_Mobileの開発者でもある。今春に株式会社アイテマンを設立。

URLhttp://iteman.typepad.jp/