InterceptionHandler
class InterceptionHandler
이 라이브러리는 AOP(aspect-oriented programming)을 구현한 라이브러리이며 이 클래스는 프로그램 내에서 AOP를 관리하는 역할을 한다.
Properties
protected AdvisorCollection | $advisorCollection | ||
protected Loader | $loader | ||
protected Pass | $passes | ||
protected ProxyGenerator | $proxyGenerator | ||
protected array | $proxyList | proxy가 생성된 클래스 목록 key는 target class name, value는 proxy class name을 저장한다. |
Methods
No description
advisor의 구성정보를 파라메터로 입력받아 advisorCollection에 추가한다.
addAdvisor 메소드를 통해 입력받은 advisorInfo에서 정보를 추출한다.
advisorInfo에서 before advisor name을 추출한다.
advisorInfo에서 after advisor name을 추출한다.
타겟 클래스의 프록시 클래스를 생성하여 로드하고, 생성된 프록시 클래스 이름을 반환한다.
생성된 proxy class 리스트를 반환한다.
기생성된 Proxy 파일을 모두 삭제한다.
Details
at line 69
__construct(AdvisorCollection $advisorCollection, ProxyGenerator $generator)
constructor
at line 78
AdvisorCollection
getAdvisorCollection()
at line 105
Advisor
addAdvisor(array|string $pointCut, array|string $advisorInfo, Closure $advice)
advisor의 구성정보를 파라메터로 입력받아 advisorCollection에 추가한다.
이 함수를 직접 호출하는 대신 intercept() 헬퍼함수를 사용하십시오.
at line 124
protected array
resolveAdvisorInfo(array $advisorInfo)
addAdvisor 메소드를 통해 입력받은 advisorInfo에서 정보를 추출한다.
추출되는 정보는 advisor의 이름, advisor의 before, after 관계의 다른 advisor 목록이다.
at line 153
private string|array|null
resolveBeforeAdvisor(string|array $priority)
advisorInfo에서 before advisor name을 추출한다.
at line 180
private string|array|null
resolveAfterAdvisor(string|array $priority)
advisorInfo에서 after advisor name을 추출한다.
at line 211
string
proxy(string $targetClass, string|null $alias = null)
타겟 클래스의 프록시 클래스를 생성하여 로드하고, 생성된 프록시 클래스 이름을 반환한다.
만약 어떤 클래스에 interception을 적용하고 싶을 때 이 메소드를 사용하면 된다.
$targetClassName = 'My\Namespace\PostManager';
$proxyClass = XeInterception::proxy($targetClass, 'Post');
$postManager = new $proxyClass();
두번째 파라메터를 사용하여 타겟클래스의 alias 이름을 등록할 수 있다. alias 이름을 지정하면, 타겟 클래스에 interception을 등록할 때, alias 이름을 사용할 수 있다.
// Post alias를 사용
intercept('Post@insert', 'spam_filter', function(){...});
at line 231
array
getProxyList()
생성된 proxy class 리스트를 반환한다.
at line 241
void
clearProxies()
기생성된 Proxy 파일을 모두 삭제한다.