Spaces:
No application file
No application file
namespace Mautic\CoreBundle\DependencyInjection\Builder; | |
class BundleMetadata | |
{ | |
/** | |
* @var string | |
*/ | |
private $directory; | |
/** | |
* @var string | |
*/ | |
private $namespace; | |
/** | |
* @var string | |
*/ | |
private $baseName; | |
/** | |
* @var string | |
*/ | |
private $bundleName; | |
/** | |
* @var array<string, mixed> | |
*/ | |
private array $metadata = [ | |
'config' => [], | |
'permissionClasses' => [], | |
]; | |
/** | |
* @param array<string, mixed> $metadata | |
*/ | |
public function __construct(array $metadata) | |
{ | |
$this->metadata = $metadata; | |
if (!isset($this->metadata['permissionClasses'])) { | |
$this->metadata['permissionClasses'] = []; | |
} | |
if (!isset($this->metadata['config'])) { | |
$this->metadata['config'] = []; | |
} | |
$this->directory = $metadata['directory']; | |
$this->namespace = $metadata['namespace']; | |
$this->baseName = $metadata['bundle']; | |
$this->bundleName = $metadata['symfonyBundleName']; | |
} | |
public function getDirectory(): string | |
{ | |
return $this->directory; | |
} | |
public function getNamespace(): string | |
{ | |
return $this->namespace; | |
} | |
public function getBaseName(): string | |
{ | |
return $this->baseName; | |
} | |
public function getBundleName(): string | |
{ | |
return $this->bundleName; | |
} | |
public function setConfig(array $config): void | |
{ | |
$this->metadata['config'] = $config; | |
} | |
public function addPermissionClass(string $class): void | |
{ | |
$this->metadata['permissionClasses'][$class] = $class; | |
} | |
public function toArray(): array | |
{ | |
return $this->metadata; | |
} | |
} | |