FluidTYPO3\Flux\Package\FluxPackageFactory::getPackageWithFallback PHP Method

getPackageWithFallback() public static method

Returns the FluxPackage instance associated with and possibly existing in $qualifiedExtensionName, but falls back to returning the Flux root package if the requested package does not exist.
public static getPackageWithFallback ( string $qualifiedExtensionName ) : FluidTYPO3\Flux\Package\FluxPackageInterface
$qualifiedExtensionName string
return FluidTYPO3\Flux\Package\FluxPackageInterface
    public static function getPackageWithFallback($qualifiedExtensionName)
    {
        try {
            return static::getPackage($qualifiedExtensionName);
        } catch (PackageNotFoundException $error) {
            return static::getPackage('FluidTYPO3.Flux');
        }
    }

Usage Example

示例#1
0
 /**
  * @param array $arguments
  * @param \Closure $renderChildrenClosure
  * @param RenderingContextInterface $renderingContext
  * @return void
  */
 public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
 {
     $viewHelperVariableContainer = $renderingContext->getViewHelperVariableContainer();
     $templateVariableContainer = $renderingContext->getTemplateVariableContainer();
     $extensionName = static::getExtensionNameFromRenderingContextOrArguments($renderingContext, $arguments);
     $formClassName = FluxPackageFactory::getPackageWithFallback($extensionName)->getImplementation(FluxPackage::IMPLEMENTATION_FORM);
     $form = call_user_func_array(array($formClassName, 'create'), array());
     $container = $form->last();
     // configure Form instance
     $form->setId($arguments['id']);
     $form->setName($arguments['id']);
     $form->setLabel($arguments['label']);
     $form->setDescription($arguments['description']);
     $form->setEnabled($arguments['enabled']);
     $form->setCompact($arguments['compact']);
     $form->setExtensionName($extensionName);
     $form->setLocalLanguageFileRelativePath($arguments['localLanguageFileRelativePath']);
     $form->setVariables((array) $arguments['variables']);
     $form->setOptions((array) $arguments['options']);
     if (FALSE === $form->hasOption(Form::OPTION_ICON)) {
         $form->setOption(Form::OPTION_ICON, $arguments['icon']);
     }
     if (FALSE === $form->hasOption(Form::OPTION_GROUP)) {
         $form->setOption(Form::OPTION_GROUP, $arguments['wizardTab']);
     }
     // rendering child nodes with Form's last sheet as active container
     $viewHelperVariableContainer->addOrUpdate(static::SCOPE, static::SCOPE_VARIABLE_FORM, $form);
     $viewHelperVariableContainer->addOrUpdate(static::SCOPE, static::SCOPE_VARIABLE_EXTENSIONNAME, $extensionName);
     $templateVariableContainer->add(static::SCOPE_VARIABLE_FORM, $form);
     static::setContainerInRenderingContext($renderingContext, $container);
     $renderChildrenClosure();
     $viewHelperVariableContainer->remove(static::SCOPE, static::SCOPE_VARIABLE_EXTENSIONNAME);
     $viewHelperVariableContainer->remove(static::SCOPE, static::SCOPE_VARIABLE_CONTAINER);
     $templateVariableContainer->remove(static::SCOPE_VARIABLE_CONTAINER);
 }
All Usage Examples Of FluidTYPO3\Flux\Package\FluxPackageFactory::getPackageWithFallback