Spaces:
No application file
No application file
| namespace Mautic\CoreBundle\Helper; | |
| use Mautic\CoreBundle\Loader\ParameterLoader; | |
| use Symfony\Component\DependencyInjection\ContainerInterface; | |
| class CoreParametersHelper | |
| { | |
| private \Symfony\Component\HttpFoundation\ParameterBag $parameters; | |
| private ?array $resolvedParameters = null; | |
| public function __construct( | |
| private ContainerInterface $container | |
| ) { | |
| $loader = new ParameterLoader(); | |
| $this->parameters = $loader->getParameterBag(); | |
| $this->resolveParameters(); | |
| } | |
| /** | |
| * @param string $name | |
| * @param mixed $default | |
| * | |
| * @return mixed | |
| */ | |
| public function get($name, $default = null) | |
| { | |
| $name = $this->stripMauticPrefix($name); | |
| if ('db_table_prefix' === $name && defined('MAUTIC_TABLE_PREFIX')) { | |
| // use the constant in case in the installer | |
| return MAUTIC_TABLE_PREFIX; | |
| } | |
| // First check the container so that Symfony will resolve container parameters within Mautic config values | |
| $containerName = sprintf('mautic.%s', $name); | |
| if ($this->container->hasParameter($containerName)) { | |
| return $this->container->getParameter($containerName); | |
| } | |
| return $this->parameters->get($name, $default); | |
| } | |
| /** | |
| * @param string $name | |
| */ | |
| public function has($name): bool | |
| { | |
| return $this->parameters->has($this->stripMauticPrefix($name)); | |
| } | |
| public function all(): array | |
| { | |
| return $this->resolvedParameters; | |
| } | |
| /** | |
| * @deprecated 3.0.0 to be removed in 4.0; use get() instead | |
| */ | |
| public function getParameter($name, $default = null) | |
| { | |
| return $this->get($name, $default); | |
| } | |
| private function stripMauticPrefix(string $name): string | |
| { | |
| return str_replace('mautic.', '', $name); | |
| } | |
| private function resolveParameters(): void | |
| { | |
| $all = $this->parameters->all(); | |
| foreach ($all as $key => $value) { | |
| $this->resolvedParameters[$key] = $this->get($key, $value); | |
| } | |
| } | |
| } | |