В PHP 7.4 будут введены
Начиная с PHP 7.4 его можно сократить до:
Хотя кодовая база XenForo не сможет использовать эту функциональность в течение многих лет, это означает, что указанная выше часть
В XF 2.1.3 мы переименовали метод
Мы настоятельно рекомендуем вам начиная с 2.1.3 заменять любые вызовы
У Вас недостаточно прав для просмотра ссылок.
Вход или Регистрация
. В настоящее время мы пишем код следующим образом:
PHP:
$container['router'] = function (Container $c)
{
return $c['router.public'];
};
$container['router'] = fn(Container $c) => $c['router.public'];
Хотя кодовая база XenForo не сможет использовать эту функциональность в течение многих лет, это означает, что указанная выше часть
fn
становится зарезервированным ключевым словом, что будет проблемой, если в будущем мы захотим поддерживать PHP 7.4. К сожалению, мы используем fn
в качестве имени метода в нашем Templater.В XF 2.1.3 мы переименовали метод
XF\Template\Templater::fn()
в XF\Template\Templater::func()
. Поскольку это очень вероятно сломало бы существующий код, мы сохранили метод fn()
, но теперь он просто вызывает метод func()
.Мы настоятельно рекомендуем вам начиная с 2.1.3 заменять любые вызовы
fn()
в вашем собственном коде на func()
. В какой-то момент в ближайшем будущем мы добавим поддержку PHP 7.4 в XF 2.1, и в этот момент нам, вероятно, придется удалить метод fn()
.PHP 7.4 will introduceУ Вас недостаточно прав для просмотра ссылок. Вход или Регистрацияfor defining functions inline. Currently we do things like this:
PHP:$container['router'] = function (Container $c) { return $c['router.public']; };
From PHP 7.4 onwards it can be shortened to:
PHP:$container['router'] = fn(Container $c) => $c['router.public'];
Whilst the XenForo code base will not be able to benefit from this functionality for many years, it does mean that thefn
part above becomes a reserved keyword which will be an issue if we want to support PHP 7.4 in the future. Unfortunately, we usefn
as a method name within our Templater.
From XF 2.1.3 we have renamed theXF\Template\Templater::fn()
method toXF\Template\Templater::func()
. Because this would very likely break existing code we have kept thefn()
method but it now simply calls thefunc()
method.
We urge you from 2.1.3 onwards to replace any calls tofn()
in your own code tofunc()
. At some point in the near-ish future, we will be adding PHP 7.4 support to XF 2.1 and at that point, we will likely have to remove thefn()
method.
Последнее редактирование: