AOP\Weaver::aroundMethod
-
public function aroundMethod(callable $joinpoint, callable $advice) : Handler
Description
Déclare un greffon
$advice
qui sera appelé à la place de chaque appel au point de coupe$joinpoint
.Le tissage des aspects doit être réalisé dans la méthode register d’un plugin Registerable.
Liste de paramètres
callable $joinpoint
La méthode – ou point de coupe – à laquelle le greffon va susbtituer.
callable $advice
La méthode, statique ou dynamique – ou greffon -, à appeler à la place du point de coupe.
Le greffon peut recevoir les mêmes paramètres que le point de coupe, ceux-ci étant reconnu à leur nom, à l’exception de ces paramètres réservés :mixed $result
: passé par référence et originellement valeur ànull
, vous devrez définir ici la valeur de retour du point de coupe, si celui en attendait une.object $object
: l’objet contexte du point de coupe.Around_Method $joinpoint
: Le point de jointure Around_Method comporte toutes les données concernant le point de coupe.
Si le greffon retourne une valeur, celle-ci sera la valeur de retour du point de coupe.
Valeur de retour
La méthode retourne un ITRocks\Framework\AOP\Weaver\Handler, objet représentant l’aspect, qui pourra servir par la suite à consulter les informations concernant le point de coupe ou à annuler l’aspect avec la méthode remove().
Limitations
A l’heure actuelle, un greffon ne peut pas être :- une fonction
- un callable
[$object, 'methodName']
, le seul objet accepté ici est$this
(voir exemple).
Exemples
Voyez les exemples appliqués à beforeMethod, le fonctionnement est identique, la seule différence étant le moment où le greffon est appelé, ici en remplacement.
Dans votre point de coupe, utilisez le paramètre
Around_Method $joinpoint
pour appeler la méthode d’origine – ou point de coupe – par exemple comme ceci si la méthode attendait trois arguments et si on veut utiliser sa valeur renvoyée :
$result = $joinpoint->call($original, $arguments, $list);
Voir aussi