src/mg/Ding/Aspect/Interceptor/DispatcherImpl.php
private function _callInterceptors(
        MethodInvocation $invocation, array $interceptors
    ) {
        $total = count($interceptors) - 1;
        $invocationChain = $invocation;
        for ($i = $total; $i >= 0; $i--) {
            $newInvocation = new MethodInvocation(
                get_class($interceptors[$i]->getInterceptor()),
                $interceptors[$i]->getInterceptorMethod(),
                array($invocationChain),
                $interceptors[$i]->getInterceptor(),
                $this->reflectionFactory,
                $invocation
            );
            $invocationChain = $newInvocation;
        }
        return $invocationChain->proceed();
    }
private function _callInterceptors(
        MethodInvocation $invocation, array $interceptors
    ) {
        $total = count($interceptors) - 1;
        $invocationChain = $invocation;
        for ($i = $total; $i >= 0; $i--) {
            $newInvocation = new MethodInvocation(
                get_class($interceptors[$i]->getInterceptor()),
                $interceptors[$i]->getInterceptorMethod(),
                array($invocationChain),
                $interceptors[$i]->getInterceptor(),
                $this->reflectionFactory,
                $invocation
            );
            $invocationChain = $newInvocation;
        }
        return $invocationChain->proceed();
    }
Will chain and return the result of the chained call of interceptors.

@param MethodInvocation $invocation   Original invocation to preserve.
@param object[]         $interceptors Array of interceptors.

@return mixed