Magento 2教程 -- Magento 中的 Areas

大黑

Magento 2 教程,Mageno 中的 Areas

本篇 Magento 2 教程主要给大家讲解 Magento 中的 Area 的原理是什么,在 Magento 使用到的地方都有哪些。方便大家在具体的工作中用到的时候不在犯怵,甚至是能够做到游刃有余。

更多 《Magento 2 教程

Magento 中的 Areas

area 是一个逻辑组件,用来组织请求处理相关的代码。针对 area, 我们绝大部分时候不需要做特殊处理,但是理解 area 对于理解 Magento 相当重要。


在 Magento\Framework\App\Area 类中的 AREA_* 相关常量暗示了 area 的种类。大致有以下几种:

const AREA_GLOBAL = 'global';
const AREA_FRONTEND = 'frontend';
const AREA_ADMINHTML = 'adminhtml';
const AREA_DOC = 'doc';
const AREA_CRONTAB = 'crontab';
const AREA_WEBAPI_REST = 'webapi_rest';
const AREA_WEBAPI_SOAP = 'webapi_soap';


通过在 <MAGENTO_DIR> di.xml 文件中搜索 <argument name="areas" 字符串,我们能发现至少有 5 种 area 被添加到了 Magento\Framework\App\AreaList 类的 areas 参数中

  • 位于 <MAGENTOI_DIR>/module-backend/etc/di.xml 的 adminhtml
  • 位于 <MAGENTOI_DIR>/module-webapi/etc/di.xml 的 webapi_rest
  • 位于 <MAGENTOI_DIR>/magento/module-webapi/etc/di.xml 的 webapi_soap
  • 位于 <MAGENTOI_DIR>/magento/module-store/etc/di.xml 的 frontend
  • 位于 <MAGENTOI_DIR>/magento/module-cron/etc/di.xml 的 crontab


默认的 area 是 frontend, 是由 module-store/etc/di.xml 文件中的 default 参数定义的。 global area 是在缺失 adminhtml 和 frontend area 情况下的默认的 area。

看看 <MAGENTO_DIR>/module-webapi/etc/di.xml 文件中的例子。

<type name="Magento\Framework\App\AreaList">
    <arguments>
        <argument name="areas" xsi:type="array">
            <item name="webapi_rest" xsi:type="array">
                <item name="frontName" xsi:type="string">rest</item>
            </item>
            <item name="webapi_soap" xsi:type="array">
                <item name="frontName" xsi:type="string">soap</item>
            </item>
        </argument>
    </arguments>
</type>

frontName 有时会出现在 URL 中,name 用于在内部引用配置文件中对应的 area, Magento 中定义了不同的 area, 里面包含不同的用来处理 URL 和请求的相关代码。好处是 Magento 只用加载对应 area 下的特定代码。

更多内容参见:https://www.kancloud.cn/yuesi...

阅读 1.1k

首席打杂官 @ 有课学~ ([链接])

644 声望
8 粉丝
0 条评论

首席打杂官 @ 有课学~ ([链接])

644 声望
8 粉丝
文章目录
宣传栏