已移除和向后不兼容
所有现已移除的已弃用功能以及任何向后不兼容性。应提供有关如何缓解移除/更改的说明。
事件:按预期使用 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
- PR:https://github.com/joomla/joomla-cms/pull/41722
- 使用预处理方法的事件类现在应使用
onSet/onGet
前缀而不是set/get
。以set/get
为前缀的方法将继续工作,直到 Joomla 6。
示例
// Old
protected function setFoobar(Foo $value): Foo
{
return $value;
}
// New:
protected function onSetFoobar(Foo $value): Foo
{
return $value;
}