In the Magento 2 layout loading code, there's the following method
public function getAllDesignAbstractions()
{
$result = [];
$conditions = [
'(@design_abstraction="' . self::DESIGN_ABSTRACTION_PAGE_LAYOUT .
'" or @design_abstraction="' . self::DESIGN_ABSTRACTION_CUSTOM . '")',
];
$xpath = '/layouts/*[' . implode(' or ', $conditions) . ']';
$nodes = $this->getFileLayoutUpdatesXml()->xpath($xpath) ?: [];
/** @var $node \Magento\Framework\View\Layout\Element */
foreach ($nodes as $node) {
$name = $node->getAttribute('id');
$info = [
'name' => $name,
'label' => (string)new \Magento\Framework\Phrase((string)$node->getAttribute('label')),
'design_abstraction' => $node->getAttribute('design_abstraction'),
];
$result[$name] = $info;
}
return $result;
}
What is a Magento 2 design abstraction? I've poked around the Frontend developer's guide and other sections on the dev docs site, but I can't seem to find any information about this feature there. Is this something that's still used in Magento 2? Or is it something that's been abandoned?