@param string $driver

@return string[]
493431
protected function getConfigure(string $driver): array
    {
        $aspectConfigure = $this->app['config']->get('ytake-laravel-aop.aspect.drivers');
        $aspectConfigure[$driver]['modules'] = $this->app['config']->get('ytake-laravel-aop.aspect.modules', []);

        return $aspectConfigure[$driver];
    }
544314
public function getDrivers()
    {
        $drivers = array();
        foreach($this->aliases as $alias => $service) {
            $drivers[$alias] = $this->container->get($service);
        }
        return $drivers;
    }
591208
protected function createDriver($driver)
	{
		$method = 'create'.ucfirst($driver).'Driver';

		// We'll check to see if a creator method exists for the given driver. If not we
		// will check for a custom driver creator, which allows developers to create
		// drivers using their own customized driver creator Closure to create it.
		if (isset($this->customCreators[$driver]))
		{
			return $this->callCustomCreator($driver);
		}
		elseif (method_exists($this, $method))
		{
			return $this->$method();
		}

		throw new \InvalidArgumentException("Driver [$driver] not supported.");
	}
522841
protected function driverMatcher(/*# string */ $tag)/*# : array */
    {
        $matched = [];
        foreach ($this->drivers as $id => $driver) {
            if ($this->tagMatched($tag, $driver) && $this->pingDriver($driver)) {
                $this->expandWithFactor($matched, $id);
            }
        }
        return $matched;
    }
513152
public function driver($driver = null)
    {
        $driver = $driver ?: $this->getDefaultDriver();

        if (! isset($this->drivers[$driver])) {
            $this->drivers[$driver] = $this->createDriver($driver);
        }

        return $this->drivers[$driver];
    }
60294
private function buildCompressor($driver)
    {
        if ($driver instanceof CompressorInterface) {
            return $driver;
        }

        if (class_exists($driver)) {
            $driverClass = $driver;
        } elseif (is_string($driver)) {
            $driver = ucfirst(strtolower($driver));
            $driverClass = '\\ImageCompressor\\Driver\\' . $driver;

        }

        if (class_exists($driverClass) && is_subclass_of($driverClass, CompressorInterface::class)) {
            return new $driverClass;
        } else {
            throw new \InvalidArgumentException('Image compressor driver not found');
        }
    }
413308
private function createDrivers($driverKeys)
    {
        $this->drivers = [];

        foreach ($driverKeys as $driverKey) {
            $driverClass = $this->classNameResolver->getClassNameByDriverKey($driverKey);
            $this->drivers[$driverKey] = new $driverClass();
        }

        return $this->drivers;
    }
703074
public static function driversIn($path)
    {
        if (! is_dir($path)) {
            return [];
        }

        $drivers = [];

        $dir = new RecursiveDirectoryIterator($path);
        $iterator = new RecursiveIteratorIterator($dir);
        $regex = new RegexIterator($iterator, '/^.+ValetDriver\.php$/i', RecursiveRegexIterator::GET_MATCH);

        foreach ($regex as $file) {
            require_once $file[0];

            $drivers[] = basename($file[0], '.php');
        }

        return $drivers;
    }
1075110
protected function getArgumentsWithDriver(...$arguments): array
    {
        \array_unshift($arguments, 'driver');

        $resolvedArguments = [];

        $this->validateMissingArguments($arguments);

        if (empty($this->argument(\end($arguments)))) {
            $driver = $this->getDriverFromConfig();

            if (empty($driver)) {
                throw new RuntimeException('Not enough arguments (missing: "driver").');
            }

            $resolvedArguments['driver'] = $driver;

            for ($i = 1; $i < \count($arguments); $i++) {
                $resolvedArguments[$arguments[$i]] = $this->argument($arguments[$i - 1]);
            }
        } else {
            foreach ($arguments as $argument) {
                $resolvedArguments[$argument] = $this->argument($argument);
            }
        }

        return $resolvedArguments;
    }
365770
public function roles($driver = null)
	{
		$result = array();

		if ($driver === null)
		{
			foreach (\Auth::acl(true) as $acl)
			{
				method_exists($acl, 'roles') and $result = \Arr::merge($result, $acl->roles());
			}
		}
		else
		{
			$result = \Auth::acl($driver)->roles();
		}

		return $result;
	}
1206434
public function driver($driver = '')
    {
        if (isset($this->drivers[$driver]) || isset($this->extends[$driver])) {
            $driver = $this->buildDriver($driver);

            return $this->initalizeDriver($driver);
        } else {
            throw new DriverNotFoundException(sprintf('%s driver is not found', $driver));
        }
    }
691544
protected function getConnector($driver)
    {
        if (isset($this->connectors[$driver]))
        {
            return call_user_func($this->connectors[$driver]);
        }

        throw new \InvalidArgumentException("No connector for [$driver]");
    }
745125
public function driverInstance(string $driver): ?ITaxFacade
    {
        if (($driverClass = $this->getDriver($driver)) !== null) {
            return app($driverClass, [
                'config' => config('taxes.' . $driverClass),
            ]);
        }

        return null;
    }
660887
protected function validateDriver($driver)
    {
        $interface = $this->interface();

        if (! (new ReflectionClass($driver))->implementsInterface($interface)) {
            throw new InvalidDriverException(get_class($driver)." does not implement {$interface}");
        }

        return $driver;
    }
616785
public function getAliasNamespace(Driver $driver, $alias)
    {
        $manager = $this->managerFactory->getManager($driver);

        return $manager->getAliasNamespace($alias);
    }
1183653
protected function quoteEnum(DriverInterface $driver): string
    {
        $enumValues = [];
        foreach ($this->enumValues as $value) {
            $enumValues[] = $driver->quote($value);
        }

        if (!empty($enumValues)) {
            return '(' . implode(', ', $enumValues) . ')';
        }

        return '';
    }
380369
protected function getImagine($driver = null)
    {
        if (null === $driver) {
            switch (true) {
                case function_exists('gd_info'):
                    $driver = 'gd';
                    break;
                case class_exists('Gmagick'):
                    $driver = 'gmagick';
                    break;
                case class_exists('Imagick'):
                    $driver = 'imagick';
                    break;
            }
        }

        if (!in_array($driver, array('gd', 'gmagick', 'imagick'))) {
            throw new \RuntimeException(sprintf('Driver "%s" does not exist.', $driver));
        }

        switch (strtolower($driver)) {
            case 'gd':
                return new Gd\Imagine();
            case 'gmagick':
                return new Gmagick\Imagine();
            case 'imagick':
                return new Imagick\Imagine();
        }
    }