Ejemplo n.º 1
0
 /**
  * @param \ReflectionMethod[] $methods
  * @param AbstractBean $bean
  * @return array
  */
 private function getAfterCallMethod($methods, AbstractBean $bean)
 {
     $afterCall = [];
     foreach ($methods as $method) {
         $methodName = $method->getName();
         $afterCall[$methodName] = function ($proxy, $instance, $method, $params, $returnValue, &$returnEarly) use($methodName, $bean) {
             $annotationDispatcher = new AnnotationsDispatcher($bean, $bean->getClass(), $bean->getSphringEventDispatcher());
             $params['#result'] = $returnValue;
             $annotationDispatcher->setMethodArgs($params);
             if ($returnValue !== null) {
                 $returnEarly = true;
             }
             $toReturnAfter = $annotationDispatcher->dispatchAnnotationMethodCallAfter($methodName);
             if ($toReturnAfter !== null) {
                 $returnEarly = true;
                 $returnValue = $toReturnAfter;
             }
             return $returnValue;
         };
     }
     return $afterCall;
 }