class ProxyInvocationHandler

이 클래스는 Proxy class의 method가 호출되었을 때 작동한다.

target class의 origin method가 실행되기 전에 호출되어야 할 advisor를 호출하는 역할을 한다.

Properties

Object $proxyObject
protected string $targetMethodName
protected Closure $originMethodCall

Methods

__construct(Object $proxyObject, string $methodName, AdvisorList $advisorList)

ProxyInvocationHandler constructor.

mixed
callProxy(array $args, Closure $then)

target class의 origin method가 실행되기 전에 호출되어야 할 advisor를 호출한 다음, 마지막으로 origin method를 호출한다.

mixed
__invoke()

proxy object의 메소드가 실행될 경우, 메소드에 지정된 advisor를 모두 실행시킨다.

Object
getTargetObject()

target object(proxy object)를 반환한다.

string
getTargetMethodName()

호출된 메소드명을 반환한다.

Details

at line 56
__construct(Object $proxyObject, string $methodName, AdvisorList $advisorList)

ProxyInvocationHandler constructor.

Parameters

Object $proxyObject 호출된 proxy object
string $methodName 호출된 method 명
AdvisorList $advisorList 호출된 proxy object에 지정된 advisor list

at line 71
mixed callProxy(array $args, Closure $then)

target class의 origin method가 실행되기 전에 호출되어야 할 advisor를 호출한 다음, 마지막으로 origin method를 호출한다.

Parameters

array $args 호출된 메소드가 받은 파라메터 리스트
Closure $then 호출된 메소드, advisor를 모두 호출한 후 이 Closure가 실행된다.

Return Value

mixed

at line 85
mixed __invoke()

proxy object의 메소드가 실행될 경우, 메소드에 지정된 advisor를 모두 실행시킨다.

이때 decorator 패턴으로 advisor들이 실행되는데, 각 advisor들이 next call을 할 때 proxy는 자기 자신을 호출하도록 하여 결국 이 메소드가 실행된다. 이 메소드가 호출되면 다음 advisor를 찾아서 실행시켜주고, 더이상 실행할 advisor가 없을 경우 원래 호출된 proxy object의 메소드를 실행한다.

Return Value

mixed

at line 105
Object getTargetObject()

target object(proxy object)를 반환한다.

Return Value

Object

at line 115
string getTargetMethodName()

호출된 메소드명을 반환한다.

Return Value

string