isAbstract() || $reflectionClass->isInterface()) { return false; } return true; } private function initParameters(): void { $this->parameters = new ArrayCollection(); $classFinder = new ClassFinder(); $parameterClasses = $classFinder->getClassesInNamespace(self::PARAMETER_NAMESPACE); foreach ($parameterClasses as $parameterClass) { if ($this->initPossible($parameterClass)) { $parameter = new $parameterClass(); $this->parameters->set($parameter::getKey(), $parameter); } } } public function __construct() { $this->initParameters(); } /** * {@inheritdoc} * * @see \Infinito\Domain\ParameterManagement\ParameterFactoryInterface::getParameter() */ public function getParameter(string $key): ParameterInterface { $parameter = $this->parameters->get($key); if ($parameter) { return $parameter; } throw new NotDefinedException("The parameter for key <<$key>> doesn't exist! Generate a parameter class in the parameter folder!"); } /** * {@inheritdoc} * * @see \Infinito\Domain\ParameterManagement\ParameterFactoryInterface::getAllParameters() */ public function getAllParameters(): Collection { return $this->parameters; } }