ACCON(Powered by FuelPHP)のクラス図の説明です。
1. クラス図(全体)
2. 制御:Foundation/Controllerパッケージ
コントローラは、リクエストを受け取りサービスを提供するクラス。コントローラは、モデルや他のクラスを制御し、出力用にビューにすべてを渡します。
Foundation/Controllerパッケージでは、アクセス制御機能を保有し、そのリクエストの種類や処理の種別に応じて基礎となるコントローラを提供します。アプリケーション層では、そのサービスの種類によって適切なコントローラを選定し実装します。
-
Controller_Accon : 基板コントローラークラス。
-
Controller_Physical : 物理的に存在するコントローラーの基底クラス(通常)。
-
Controller_Physical_Crud : CRUD基礎の振る舞いを提供するクラス。
-
Controller_Physical_Nested : 再帰的な入れ子構造モデルの振る舞いを提供するクラス。
-
-
Controller_Kinetic : 動的に生成されるコントローラーの基底クラス。
- Controller_Kinetic_Nested : 再帰的な入れ子構造のモデルの振る舞いを提供するクラス(Front用)。
-
-
Controller_Accon_Rest : Restコントローラー。
3. 型(モデル):Foundation/Modelパッケージ
モデルはビジネスロジックとデータベース処理を行います。ORM(Object Relational Mapper)を使用しており、そのマッピング対象のテーブルの特性に合わせて次の二つが存在します。アプリケーション層では、その特性に合わせてクラスを選定し実装を行います。
-
Model_Crud : 通常のレリーション構造のテーブルを使用するモデル。
-
Model_Nested : 再帰的構造のテーブルを使用するモデル。
4. 認証(アクセス制御):Foundation/Behavior/Authパッケージ
アクセス制御の認証を提供するクラス。下の二つのクラスが含まれており、アプリケーション層では、用途によって切り替え、拡張を行います。
-
Behavior_Auth_Simple : 通常のログイン、ログアウト、状態の確認を提供するクラス。
-
Behavior_Auth_None : スタブクラス。テスト時など、認証機能をOFFにしたい場合に使用。
クラスの切り替えは設定ファイルで行います。(設定ファイル:app/config/accon.php)
/**
* 認証
*/
'auth' => 'Accon\Foundation\Behavior_Auth_Simple',
// 'auth' => 'Accon\Foundation\Behavior_Auth_None',
5. 認可(アクセス制御):Foundation/Behavior/ACLパッケージ
アクセス制御の認可を提供するクラス。ユーザマスタ、グループマスタ、ロールマスタとそのアクセス制御リストからアクション単位に許可・拒否を判断します。
-
Behavior_Acl_Physical : 物理的に存在するコントローラ用のアクセス制御。
-
Behavior_Acl_Kinetic : 物理的に存在しないコントローラ用のアクセス制御。
-
Behavior_Acl_Rest : Rest用のアクセス制御。
-
Behavior_Acl_None : アクセス制御なし(スタブ)。
クラスの切り替えは設定ファイルで行います。(設定ファイル:app/config/accon.php)
/**
* 物理的に存在するコントローラー
*/
'physical' => array(
/**
* 認可
*/
'acl' => 'Accon\Foundation\Behavior_Acl_Physical',
// 'acl' => 'Accon\Foundation\Behavior_Acl_None',
/**
* 動的に生成されるコントローラー
*/
'kinetic' => array(
/**
* 認可
*/
'acl' => 'Accon\Foundation\Behavior_Acl_Kinetic',
// 'acl' => 'Accon\Foundation\Behavior_Acl_None',
/**
* レストコントローラー
*/
'rest' => array(
/**
* 認可
*/
'acl' => 'Accon\Foundation\Behavior_Acl_Rest',
// 'acl' => 'Accon\Foundation\Behavior_Acl_None',
6. 画動(画面動作):Foundation/Behavior/Viewパッケージ
画面の動作が定義されたクラス。動作の種別毎にその標準的な振る舞いを提供します。その振る舞いは、コントローラーの種類別に設定ファイルで関連付けされており、変更・拡張時にはその設定を変更します。(設定ファイル:app/config/accon.php)
/**
* 画面生成
*/
'view' => array(
'list' => 'Accon\Foundation\Behavior_View_list_Crud', // 一覧
'single' => 'Accon\Foundation\Behavior_View_Single_Crud', // 詳細
'update' => 'Accon\Foundation\Behavior_View_Update_Crud', // 更新
'insert' => 'Accon\Foundation\Behavior_View_Insert_Crud', // 追加
),
7. 操作:Foundation/Behavior/Operationパッケージ
モデルの操作が定義されたクラス。動作の種別毎にその標準的な振る舞いを提供します。その振る舞いは、コントローラーの種類別に設定ファイルで関連付けされており、変更・拡張時にはその設定を変更します。(設定ファイル:app/config/accon.php)
'crud' => array(
/**
* モデル操作
*/
'operation' => array(
'insert' => 'Accon\Foundation\Behavior_Operation_Insert_Crud', // 追加
'update' => 'Accon\Foundation\Behavior_Operation_Update_Crud', // 更新
'remove' => 'Accon\Foundation\Behavior_Operation_Remove_Crud', // 削除
),
8. 他
-
View : 画面部品を使用する際、アプリケーション層、ファンデーション層の順位で検索を行う。アプリケーション層に該当の部品が存在しない場合はファンデーション層の部品を利用する。
-
Log : 通常のログ以外に、操作ログとして、「いつ・だれが・どこから・なにを・どうした」を出力する。また、ログファイル以外にブラウザのコンソールにログを出力することが可能。(設定ファイル:app/config/accon.php)
/**
* オペレーションログ出力設定
* true: 出力
* false: 出力しない
*/
'operation_log' => true,
/**
* ブラウザコンソールログ出力設定
* true: 出力
* false: 出力しない
*/
'browser_console' => true,
9. 管制(アクセス制御管理機能のコントローラー):Controllerパッケージ
アクセス制御機能の管理画面用のコントローラ。
10. 管型(アクセス制御管理機能のモデル):Modelパッケージ
アクセス制御機能の管理画面用のモデル。