\BEAR_Aspect_Weaver

BEARクラスの抽象クラス

BEARフレームワークで使われる基底クラスです。

BEARのクラスはBEAR::factoryやBEAR::dependency()によって以下の順でインスタンス化されます。

1) コンストラクタで設定を行う 2) 設定に基づいてインジェクタで必要なサービスをプロパティに用意

Summary

Methods
Properties
Constants
__construct()
onInject()
setConfig()
getConfig()
setService()
invoke()
No public properties found
ADVICE_BEFORE
ADVICE_AFTER
ADVICE_AROUND
ADVICE_THROWING
ADVICE_RETURNING
_exception()
$_config
N/A
_adviceValidation()
No private properties found
N/A

Constants

ADVICE_BEFORE

ADVICE_BEFORE

beforeアドバイス

ADVICE_AFTER

ADVICE_AFTER

afterアドバイス

ADVICE_AROUND

ADVICE_AROUND

aroundアドバイス

ADVICE_THROWING

ADVICE_THROWING

throwアドバイス

ADVICE_RETURNING

ADVICE_RETURNING

returnアドバイス

Properties

$_config

$_config : array

Class config

Type

array

Methods

__construct()

__construct(array  $config) 

Universal constructor

設定を_configプロパティに代入します。

Parameters

array $config

ユーザー設定値

onInject()

onInject() : void

Inject

設定にしたがってサービスをインジェクトします。

setConfig()

setConfig(mixed  $config, mixed  $values = null) : self

Set config

Parameters

mixed $config

(string) 設定キー | (array) 設定配列

mixed $values

(string) $configの時の設定値

Returns

self

getConfig()

getConfig(string  $key = null) : mixed

Get config

Parameters

string $key

設定キー、指定なければ全ての設定を取得

Returns

mixed

setService()

setService(string  $name, mixed  $service) : void

Set service

Parameters

string $name

サービスキー

mixed $service

サービス

invoke()

invoke(object  $obj, array  $values) : mixed

アスペクト実行

指定されたアスペクト(アドバイスタイプとアドバイスクラスのセット)を
受け取ったオブジェクトのメソッドに織り込んで実行します。

ジョインポイントの種類は以下のものがあります。

before    事前実行
around    元のメソッドのオーバーライド
after     事後実行
returning 結果を返す前に実行
throwing  例外発生時

Parameters

object $obj

ターゲットオブジェクト

array $values

メソッド引数

Throws

\Exception

$e

Returns

mixed

_exception()

_exception(string  $msg, array  $config = array()) : \BEAR_Exception

例外の作成

Parameters

string $msg

例外メッセージ

array $config

例外config

Returns

\BEAR_Exception

_adviceValidation()

_adviceValidation(string  $adviceClass, string  $interface) : void

aroundアドバイスのバリデーション

aroundアドバイスは一度しか呼べず、BEAR_Aspect_Around_Interfaceインターフェイスを実装している必要があります。

Parameters

string $adviceClass

アドバイスクラス

string $interface

インターフェイス

Throws

\BEAR_Aspect_Exception