根据最新文档,可以通过调用addExtension
:向Shopware 6小页面添加自定义数据
use ShopwareStorefrontPageletFooterFooterPageletLoadedEvent;
use SymfonyComponentEventDispatcherEventSubscriberInterface;
public function addActiveProductCount(FooterPageletLoadedEvent $event): void
{
$event->getPagelet()->addExtension('product_count', $productCountResult);
但是,尽管发行说明升级说明中没有提到addExtension
的弃用,但我的IDE:也是如此
方法"addExtension"已弃用
public function ExtendableTrait::addExtension(string $name, ?Struct $extension) void
将新的扩展结构添加到类存储中。传递的名称被用作唯一标识符,也必须存储。
不推荐:5.6.0
实现:
ExtendableInterface::addExtension
声明于:
ShopwareCoreFrameworkStructExtendableTrait
来源:development/vender/shopware/platform/src/Core/Framework/Struct/ExtendableTrait.php
更新:根据@cuong-huynh的发现,第二个参数($extension
)不能再是null
,我添加了一个检查,以确保我们永远不会通过null
,但该方法在我的IDE中仍然标记为不推荐使用。
if ($productCountResult) {
$event->getPagelet()->addExtension('product_count', $productCountResult);
上面的代码显示addExtension
已弃用,尽管由于之前的if
检查,现在应该保证$productCountResult
永远不会是null
。
有人能告诉我使用哪种方法以及在哪里查找相关文档吗?或者,如果addExtension
被错误标记为弃用(类似于最近的EntityRepository),则恢复弃用标志。
根据不推荐使用的注释@deprecated tag:v6.5.0 - second param $extension will not allow null anymore
,据我所知,我们仍然使用该函数,但第二个参数不能为null。