5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FuelPHP拡張モジュール:【解説】ACCONのクラス図

Last updated at Posted at 2015-07-26

ACCON(Powered by FuelPHP)のクラス図の説明です。

1. クラス図(全体)

クラス図

拡大

2. 制御:Foundation/Controllerパッケージ

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パッケージ

Model

モデルはビジネスロジックとデータベース処理を行います。ORM(Object Relational Mapper)を使用しており、そのマッピング対象のテーブルの特性に合わせて次の二つが存在します。アプリケーション層では、その特性に合わせてクラスを選定し実装を行います。

  • Model_Crud : 通常のレリーション構造のテーブルを使用するモデル。

  • Model_Nested : 再帰的構造のテーブルを使用するモデル。

4. 認証(アクセス制御):Foundation/Behavior/Authパッケージ

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パッケージ

Auth

アクセス制御の認可を提供するクラス。ユーザマスタ、グループマスタ、ロールマスタとそのアクセス制御リストからアクション単位に許可・拒否を判断します。

  • 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パッケージ

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パッケージ

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パッケージ

Controller

アクセス制御機能の管理画面用のコントローラ。

10. 管型(アクセス制御管理機能のモデル):Modelパッケージ

Model

アクセス制御機能の管理画面用のモデル。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?