Automattic\WooCommerce\Vendor\League\Container

ReflectionContainer::call()publicWC 1.0

Invoke a callable via the container.

Method of the class: ReflectionContainer{}

No Hooks.

Return

Mixed.

Usage

$ReflectionContainer = new ReflectionContainer();
$ReflectionContainer->call( $callable, $args );
$callable(callable) (required)
-
$args(array)
-
Default: []

ReflectionContainer::call() code WC 8.7.0

public function call(callable $callable, array $args = [])
{
    if (is_string($callable) && strpos($callable, '::') !== false) {
        $callable = explode('::', $callable);
    }

    if (is_array($callable)) {
        if (is_string($callable[0])) {
            $callable[0] = $this->getContainer()->get($callable[0]);
        }

        $reflection = new ReflectionMethod($callable[0], $callable[1]);

        if ($reflection->isStatic()) {
            $callable[0] = null;
        }

        return $reflection->invokeArgs($callable[0], $this->reflectArguments($reflection, $args));
    }

    if (is_object($callable)) {
        $reflection = new ReflectionMethod($callable, '__invoke');

        return $reflection->invokeArgs($callable, $this->reflectArguments($reflection, $args));
    }

    $reflection = new ReflectionFunction(\Closure::fromCallable($callable));

    return $reflection->invokeArgs($this->reflectArguments($reflection, $args));
}