tkotosz / block-decorator-magento2
Tkotosz - Magento 2的块装饰模块
Requires
- php: >=7.1
- magento/framework: ^100.1|^101.0|^102.0
- magento/module-catalog: ^101.0|^102.0|^103.0
This package is auto-updated.
Last update: 2024-09-19 01:48:33 UTC
README
此模块允许根据块实现的接口使用额外数据装饰布局中使用的块。
安装
通过将以下内容添加到您的 composer.json
中进行安装:
composer require tkotosz/block-decorator-magento2
它是如何工作的?
该模块为 Magento\Framework\View\Element\BlockFactory
注册了一个 "after plugin",该工厂被 Magento 用于实例化块。在这个插件中,由工厂创建的块对象传递给所有注册的装饰器,以便根据需要使用额外数据装饰块。每个装饰器负责检查块的类型并决定是否需要执行任何操作。
如何使用?
-
创建一个接口,该接口可以被任何块实现以获取特定数据。(例如:
Tkotosz\BlockDecorator\View\Element\Block\CurrentProduct\ProductNameAwareInterface
) -
以通常的方式创建您的块类,并实现第一步中创建的接口。(例如:
Tkotosz\BlockDecorator\Block\Product\View\ProductName
) -
创建自己的装饰器,以便在适用的情况下(当块实现接口时)使用所需数据装饰块。要创建装饰器,只需创建一个实现
Tkotosz\BlockDecorator\View\Element\Block\Decorator\DecoratorInterface
的新类。(例如:Tkotosz\BlockDecorator\View\Element\Block\Decorator\CurrentProductName
) -
按照以下方式在 Magento di 中注册您的装饰器
<type name="Tkotosz\BlockDecorator\View\Element\Block\Decorator\Container">
<arguments>
<argument xsi:type="array" name="decorators">
<item name="your_awesome_decorator" xsi:type="object">Your\Awesome\Decorator</item>
</argument>
</arguments>
</type>
(例如:请参阅如何在 src/etc/di.xml
中注册 Tkotosz\BlockDecorator\View\Element\Block\Decorator\CurrentProductName
)
- 将您的新块添加到任何布局中,当块被实例化时,您的装饰器将运行以设置所需的数据,该数据稍后可以在块渲染时使用。