tkotosz/block-decorator-magento2

Tkotosz - Magento 2的块装饰模块

安装次数: 24,373

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:magento2-module

1.0.2 2019-04-18 14:12 UTC

This package is auto-updated.

Last update: 2024-09-19 01:48:33 UTC


README

License Latest Stable Version Scrutinizer Code Quality Build Status

此模块允许根据块实现的接口使用额外数据装饰布局中使用的块。

安装

通过将以下内容添加到您的 composer.json 中进行安装:

composer require tkotosz/block-decorator-magento2

它是如何工作的?

该模块为 Magento\Framework\View\Element\BlockFactory 注册了一个 "after plugin",该工厂被 Magento 用于实例化块。在这个插件中,由工厂创建的块对象传递给所有注册的装饰器,以便根据需要使用额外数据装饰块。每个装饰器负责检查块的类型并决定是否需要执行任何操作。

如何使用?

  1. 创建一个接口,该接口可以被任何块实现以获取特定数据。(例如:Tkotosz\BlockDecorator\View\Element\Block\CurrentProduct\ProductNameAwareInterface

  2. 以通常的方式创建您的块类,并实现第一步中创建的接口。(例如:Tkotosz\BlockDecorator\Block\Product\View\ProductName

  3. 创建自己的装饰器,以便在适用的情况下(当块实现接口时)使用所需数据装饰块。要创建装饰器,只需创建一个实现 Tkotosz\BlockDecorator\View\Element\Block\Decorator\DecoratorInterface 的新类。(例如:Tkotosz\BlockDecorator\View\Element\Block\Decorator\CurrentProductName

  4. 按照以下方式在 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

  1. 将您的新块添加到任何布局中,当块被实例化时,您的装饰器将运行以设置所需的数据,该数据稍后可以在块渲染时使用。