HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/globfdxw/www/wp-content/plugins/give/src/TestData/Framework/ProviderForwarder.php
<?php

namespace Give\TestData\Framework;

trait ProviderForwarder
{

    /** @var array */
    protected $loadedProviders = [];

    /**
     * Forward calls to a provider class.
     *
     * @param string $name
     * @param array  $arguments
     *
     * @return mixed
     */
    public function __call($name, $arguments)
    {
        $provider = isset($this->loadedProviders[$name]) ? $this->loadedProviders[$name] : $this->loadProvider($name);

        return call_user_func_array($this->loadedProviders[$name], $arguments);
    }

    /**
     * Load a provider by class name, adjusted for case.
     *
     * @param string $name
     *
     * @return Contract\Provider
     */
    protected function loadProvider($name)
    {
        $providerClass = sprintf('%s\%s\%s', __NAMESPACE__, 'Provider', ucfirst($name));

        return $this->loadedProviders[$name] = give()->make($providerClass);
    }
}