| Server IP : 193.146.211.90 / Your IP : 10.85.6.55 Web Server : Apache System : Linux wordpress-gti-69dcdb54f7-n4wdq 6.11.8-arch1-2 #1 SMP PREEMPT_DYNAMIC Fri, 15 Nov 2024 15:35:07 +0000 x86_64 User : 1001 ( 1001) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/presto-player/vendor/typisttech/imposter/src/ |
Upload File : |
<?php
declare(strict_types=1);
namespace TypistTech\Imposter;
class Config implements ConfigInterface
{
/**
* @var string
*/
protected $packageDir;
/**
* @var array
*/
private $config;
public function __construct(string $packageDir, array $config)
{
$this->packageDir = StringUtil::addTrailingSlash($packageDir);
$this->config = $config;
}
/**
* @return string[]
*/
public function getAutoloads(): array
{
return array_map(function (string $autoload): string {
return $this->packageDir . $autoload;
}, array_unique($this->getAutoloadPaths()));
}
/**
* @return string[]
*/
private function getAutoloadPaths(): array
{
$autoloads = $this->get('autoload');
unset($autoloads['exclude-from-classmap']);
return ArrayUtil::flattenMap(function ($autoloadConfig): array {
return $this->normalizeAutoload($autoloadConfig);
}, $autoloads);
}
protected function get(string $key): array
{
return $this->config[$key] ?? [];
}
/**
* @param $autoloadConfigs
*
* @return string[]
*/
private function normalizeAutoload($autoloadConfigs): array
{
if (! is_array($autoloadConfigs)) {
return [$autoloadConfigs];
}
return ArrayUtil::flattenMap(function ($autoloadConfig): array {
return $this->normalizeAutoload($autoloadConfig);
}, $autoloadConfigs);
}
public function getPackageDir(): string
{
return $this->packageDir;
}
/**
* @return string[]
*/
public function getRequires(): array
{
return array_keys($this->get('require'));
}
}