[TYPO3-50-general] understanding the AOP implementation
Robert Lemke
robert at typo3.org
Thu Jul 17 11:19:36 CEST 2008
Hi Peter,
Am 17.07.2008 um 11:03 schrieb Peter Niederlag:
> I am still fighting to really understand that AOP stuff.
>
> running through
> http://flow3.typo3.org/documentation/reference/aop-framework/
> I understand how to define a pointcut or an advice.
>
> What puzzles me is that the examples for advices at least partly
> seem to
> base on "plain" pointcut expressions.
>
> Does that mean the @pointcut annotation solely serves a way to
> define a
> "named" pointcut?
yes, exactly.
> Within an advice I can either use a named pointcut or a plain
> pointcut-expression?
yes, or combine them if you like.
For example you could define a named pointcut "TypoScriptObjects"
which matches all classes implementing the TypoScript Interface:
class F3_Peter_SomeAspect {
/**
* @pointcut within(F3_TypoScript_TypoScriptObjectInterface)
*/
protected $typoScriptObjects;
...
Then you want implement an advice which intercepts the render method
of all TypoScript objects:
/**
* @around method(.*->render()) && F3_Peter_SomeAspect-
>typoScriptObjects
*/
public function renderAdvice(F3_FLOW3_AOP_JoinPointInterface
$joinPoint) {
$originalRenderOutput = $joinPoint->getAdviceChain()-
>proceed($joinPoint);
return $originalRenderOutput . ' - Peter was here.';
}
You see?
Cheers,
robert
More information about the TYPO3-project-5_0-general
mailing list