Skip to content

Commit 35f9465

Browse files
committed
Use Builder anyway
1 parent 970a7cc commit 35f9465

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

Util/Controller/LayoutLoader.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Magento\Framework\View\LayoutFactory;
88
use Magento\Framework\View\LayoutInterface;
99
use Magento\Framework\View\Page\Config as PageConfig;
10+
use Magento\Framework\View\Page\ConfigFactory as PageConfigFactory;
1011
use Magento\Framework\View\Page\Layout\Reader as PageLayoutReader;
1112

1213
class LayoutLoader
@@ -17,6 +18,7 @@ public function __construct(
1718
private readonly LayoutHandlerComposite $layoutHandlerComposite,
1819
private readonly BuilderFactory $layoutBuilderFactory,
1920
private readonly PageConfig $pageConfig,
21+
private readonly PageConfigFactory $pageConfigFactory,
2022
private readonly PageLayoutReader $pageLayoutReader,
2123
) {
2224
}
@@ -26,14 +28,25 @@ public function load(array $handles = [], array $pageHandles = [], bool $isolate
2628
if ($isolated) {
2729
$layout = $this->layoutFactory->create();
2830
$update = $layout->getUpdate();
31+
$update->addHandle('default');
2932

3033
$update->addPageHandles($pageHandles);
3134
foreach ($handles as $handle) {
3235
$update->addHandle($this->sanitizeHandle($handle));
3336
}
3437

35-
$layout->generateXml();
36-
$layout->generateElements();
38+
$pageConfig = $this->pageConfigFactory->create(); // important: fresh instance
39+
40+
$builder = $this->layoutBuilderFactory->create(
41+
BuilderFactory::TYPE_PAGE,
42+
[
43+
'layout' => $layout,
44+
'pageConfig' => $pageConfig,
45+
'pageLayoutReader' => $this->pageLayoutReader,
46+
]
47+
);
48+
49+
$builder->build();
3750

3851
return $layout;
3952
}

0 commit comments

Comments
 (0)