/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/View/Page/Builder.php
95 строк
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; use Magento\Framework\App; use Magento\Framework\App\ObjectManager; use Magento\Framework\Event; use Magento\Framework\View; use Magento\Framework\View\Model\PageLayout\Config\BuilderInterface; /** * Page Layout Builder */ class Builder extends View\Layout\Builder { /** * @var \Magento\Framework\View\Page\Config */ protected $pageConfig; /** * @var \Magento\Framework\View\Page\Layout\Reader */ protected $pageLayoutReader; /** * @var BuilderInterface|mixed */ private $pageLayoutBuilder; /** * @param View\LayoutInterface $layout * @param App\Request\Http $request * @param Event\ManagerInterface $eventManager * @param Config $pageConfig * @param Layout\Reader $pageLayoutReader * @param BuilderInterface|null $pageLayoutBuilder */ public function __construct( View\LayoutInterface $layout, App\Request\Http $request, Event\ManagerInterface $eventManager, Config $pageConfig, Layout\Reader $pageLayoutReader, ?BuilderInterface $pageLayoutBuilder = null ) { parent::__construct($layout, $request, $eventManager); $this->pageConfig = $pageConfig; $this->pageLayoutReader = $pageLayoutReader; $this->pageLayoutBuilder = $pageLayoutBuilder ?? ObjectManager::getInstance()->get(BuilderInterface::class); $this->pageConfig->setBuilder($this); } /** * Read page layout before generation generic layout * * @return $this */ protected function generateLayoutBlocks() { $this->readPageLayout(); return parent::generateLayoutBlocks(); } /** * Read page layout and write structure to ReadContext * * @return void */ protected function readPageLayout() { $pageLayout = $this->getPageLayout(); if ($pageLayout) { $readerContext = $this->layout->getReaderContext(); $this->pageLayoutReader->read($readerContext, $pageLayout); } } /** * Get current page layout or fallback to default * * @return string */ protected function getPageLayout() { $pageLayout = $this->pageConfig->getPageLayout(); return ($pageLayout && $this->pageLayoutBuilder->getPageLayoutsConfig()->hasPageLayout($pageLayout)) ? $pageLayout : $this->layout->getUpdate()->getPageLayout(); } }