跳至主要内容

已移除和向后不兼容

所有现已移除的已弃用功能以及任何向后不兼容性。应提供有关如何缓解移除/更改的说明。

事件:按预期使用 getArgument 和 getArguments

对于没有事件类的事件,不建议使用 $event->getArgument('0')。将来,此类事件将接收自己的类和命名参数,此代码将无法工作。

只要事件未转换为其自己的类,或者您需要同时支持这两个版本,请使用以下示例。所有其他方法都不受支持。

[$arg1, $arg2] = array_values($event->getArguments());

例如,对于 Joomla 4 以及 Joomla 5 的准备工作,您可以使用以下代码

public function onBeforeCooking(EventInterface $event)
{
if ($event instanceof BeforeCookingEvent) {
$recipe = $event->getRecipe();
$plate = $event->getPlate();
} else {
[$recipe, $plate] = array_values($event->getArguments());
}
}

事件:设置不可变事件的结果已弃用

设置不可变事件的结果 $event['result'][] = $result 已弃用。只有实现 ResultAwareInterface 的事件才能通过 $event->addResult($result) 接收结果。

事件类:事件预处理方法现在应使用 onSet/onGet 前缀而不是 set/get

示例

// Old
protected function setFoobar(Foo $value): Foo
{
return $value;
}

// New:
protected function onSetFoobar(Foo $value): Foo
{
return $value;
}