Dans Magento 2, certaines mises en page gèrent les fichiers XML ouverts avec le
<page.../>
balise racine. D'autres ouvrent avec le
<layout.../>
balise racine. L'utilisation de l'une des balises ci-dessus introduit-elle des différences de fonctionnalité dans un fichier XML de descripteur de mise en page? Ou est-ce un pur dressing? Ou quelque chose entre les deux.
Deux exemples
<!-- File: vendor/magento/module-weee/view/frontend/layout/default.xml -->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
et
<!-- File: vendor/magento/module-widget/view/adminhtml/layout/adminhtml_widget_loadoptions.xml -->
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
<layout/>
fichier ne peuvent-ils pas être inclus dans un<page/>
<body/>
pour le même effet? Ou est-ce que je manque quelque chose?Les fichiers de mise en page qui s'ouvrent avec
<layout></layout>
sont des mises en page qui déclarent le filaire d'une page à l'intérieur de la<body>
section, par exemple une mise en page à une colonne ou à deux colonnes.Les fichiers de mise en page qui s'ouvrent avec
<page></page>
sont des fichiers de configuration de page qui ajoutent du contenu au filaire défini dans un fichier de mise en page.Voici le document officiel à ce sujet, veuillez nous faire savoir s'il peut être amélioré: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html
la source
<layout>
et l'autre avec<page>
sur cet article .Une différence que j'ai remarquée est que, parce que c'est le filaire d'une page à l'intérieur du corps , vous pouvez ajax récupérer juste une partie du html. Normalement, si vous frappez un contrôleur, vous obtenez la page entière commençant par la balise. Ces contrôleurs retournent des objets de page créés par PageFactory qui utilise le type layout xml. Mais lorsque vous voulez charger dynamiquement du phtml avec un appel ajax comme un filtre, c'est utile. Magento_ImportExport modifie dynamiquement les filtres d'exportation lorsque l'entité (produit, client) change. Ceci est un exemple d'utilisation de magento (adminhtml_export_getfilter.xml).
la source