替换不推荐使用的Shopware 6 addExtension方法



根据最新文档,可以通过调用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。

相关内容

  • 没有找到相关文章

最新更新