src/Core/Framework/Adapter/Twig/NamespaceHierarchy/NamespaceHierarchyBuilder.php line 31

  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\Adapter\Twig\NamespaceHierarchy;
  3. use Shopware\Core\Framework\Log\Package;
  4. use Shopware\Core\System\Annotation\Concept\ExtensionPattern\HandlerChain;
  5. /**
  6.  * @HandlerChain(
  7.  *     serviceTag="shopware.twig.hierarchy_builder",
  8.  *     handlerInterface="TemplateNamespaceHierarchyBuilderInterface"
  9.  * )
  10.  */
  11. #[Package('core')]
  12. class NamespaceHierarchyBuilder
  13. {
  14.     /**
  15.      * @internal
  16.      *
  17.      * @param TemplateNamespaceHierarchyBuilderInterface[] $namespaceHierarchyBuilders
  18.      */
  19.     public function __construct(private readonly iterable $namespaceHierarchyBuilders)
  20.     {
  21.     }
  22.     public function buildHierarchy(): array
  23.     {
  24.         $hierarchy = [];
  25.         foreach ($this->namespaceHierarchyBuilders as $hierarchyBuilder) {
  26.             $hierarchy $hierarchyBuilder->buildNamespaceHierarchy($hierarchy);
  27.         }
  28.         return $hierarchy;
  29.     }
  30. }