Eloquent\Phony\Invocation\InvocableInspector::callbackReflector PHP Method

callbackReflector() public method

Get the appropriate reflector for the supplied callback.
public callbackReflector ( callable $callback ) : ReflectionFunctionAbstract
$callback callable The callback.
return ReflectionFunctionAbstract The reflector.
    public function callbackReflector($callback)
    {
        while ($callback instanceof WrappedInvocable) {
            $callback = $callback->callback();
        }
        if (is_array($callback)) {
            return new ReflectionMethod($callback[0], $callback[1]);
        }
        if (is_string($callback) && false !== strpos($callback, '::')) {
            list($className, $methodName) = explode('::', $callback);
            return new ReflectionMethod($className, $methodName);
        }
        if (is_object($callback) && !$callback instanceof Closure) {
            if (method_exists($callback, '__invoke')) {
                return new ReflectionMethod($callback, '__invoke');
            }
            throw new ReflectionException('Invalid callback.');
        }
        return new ReflectionFunction($callback);
    }