/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/View/Page/Layout/Reader.php
97 строк
3 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2014 Adobe * All Rights Reserved. */ namespace Magento\Framework\View\Page\Layout; use Magento\Framework\View\Layout; /** * Class Page layout reader */ class Reader { /** * Merge cache suffix */ const MERGE_CACHE_SUFFIX = 'page_layout'; /** * @var \Magento\Framework\View\Design\Theme\ResolverInterface */ protected $themeResolver; /** * @var \Magento\Framework\View\Layout\ProcessorFactory */ protected $processorFactory; /** * @var \Magento\Framework\View\File\CollectorInterface */ protected $pageLayoutFileSource; /** * @var \Magento\Framework\View\Layout\ProcessorInterface */ protected $pageLayoutMerge; /** * @var \Magento\Framework\View\Layout\ReaderPool */ protected $reader; /** * Constructor * * @param \Magento\Framework\View\Design\Theme\ResolverInterface $themeResolver * @param \Magento\Framework\View\Layout\ProcessorFactory $processorFactory * @param \Magento\Framework\View\File\CollectorInterface $pageLayoutFileSource * @param \Magento\Framework\View\Layout\ReaderPool $reader */ public function __construct( \Magento\Framework\View\Design\Theme\ResolverInterface $themeResolver, \Magento\Framework\View\Layout\ProcessorFactory $processorFactory, \Magento\Framework\View\File\CollectorInterface $pageLayoutFileSource, \Magento\Framework\View\Layout\ReaderPool $reader ) { $this->themeResolver = $themeResolver; $this->processorFactory = $processorFactory; $this->pageLayoutFileSource = $pageLayoutFileSource; $this->reader = $reader; } /** * Retrieve the layout update instance * * @return \Magento\Framework\View\Layout\ProcessorInterface */ protected function getPageLayoutMerge() { if ($this->pageLayoutMerge) { return $this->pageLayoutMerge; } $this->pageLayoutMerge = $this->processorFactory->create([ 'theme' => $this->themeResolver->get(), 'fileSource' => $this->pageLayoutFileSource, 'cacheSuffix' => self::MERGE_CACHE_SUFFIX, ]); return $this->pageLayoutMerge; } /** * Read page layout structure and fill reader context * * @param Layout\Reader\Context $readerContext * @param string $pageLayout * @return void */ public function read(Layout\Reader\Context $readerContext, $pageLayout) { $this->getPageLayoutMerge()->load($pageLayout); $xml = $this->getPageLayoutMerge()->asSimplexml(); $this->reader->interpret($readerContext, $xml); } }