Пример #1
0
 public function lookupParameterValue(\ReflectionParameter $parameter)
 {
     $parameterClass = ReflectionUtils::extractParameterClass($parameter);
     if ($parameterClass === null) {
         throw new MagicObjectUnavailableException();
     }
     switch ($parameterClass->getName()) {
         case 'n2n\\l10n\\DynamicTextCollection':
             $module = null;
             try {
                 $module = $this->moduleManager->getModuleOfTypeName($this->determineNamespaceOfParameter($parameter), !$parameter->allowsNull());
             } catch (UnknownModuleException $e) {
                 throw new MagicObjectUnavailableException('Could not determine module for DynamicTextCollection.', 0, $e);
             }
             if ($module === null) {
                 return null;
             }
             return new DynamicTextCollection($module, $this->getN2nLocale());
         case 'n2n\\core\\module\\Module':
             try {
                 return $this->moduleManager->getModuleOfTypeName($this->determineNamespaceOfParameter($parameter), !$parameter->allowsNull());
             } catch (UnknownModuleException $e) {
                 throw new MagicObjectUnavailableException('Could not determine module.', 0, $e);
             }
         default:
             if ($parameter->isDefaultValueAvailable()) {
                 if (null !== ($value = $this->lookup($parameterClass->getName(), false))) {
                     return $value;
                 }
                 return $parameter->getDefaultValue();
             } else {
                 if ($parameter->allowsNull()) {
                     return $this->lookup($parameterClass->getName(), false);
                 }
             }
             return $this->lookup($parameterClass->getName(), true);
     }
 }