Symfony 4事件调度程序 - 是否有一些解决方案如何使用事件调度程序过滤值?(如WordPress "add_filter"功能)



是否有一些解决方案可以使用Symfony Event Dispatcher(如wordpress(过滤一个或多个值,并使用add_filter返回过滤后的值?也许可以将属性存储在Event中并与订阅者一起编辑它们?

你提出的解决方案是我能想到的最好的。不存在";"本地";该机制旨在像WordPress过滤器或Joomla插件一样发布处理值。

如果你调度一个自定义事件并用你想要的对象填充;过滤器";你可以很容易地添加一个订阅者来执行你的意思。由于对象总是通过引用传递,因此对对象的任何更改都将在控制器中传播。

例如

控制器:

$product = $this->productRepository->get($someId);
$this->eventDispacther->dispatch(
BeforeDisplayEvent::class,
new BeforeDisplayEvent($product)
)
return $this->render('product.html.twig', ['product' => $product]);

订阅者:

public function alterProduct(BeforeDisplayEvent $event)
{
$product->setSomething($this->yourFilter($product));
}

相关内容

  • 没有找到相关文章

最新更新