Предупреждение об устаревшем методе: XF\Template\Templater::fn устарел в XF 2.1.3 и будет в конечном итоге удалён

В PHP 7.4 будут введены . В настоящее время мы пишем код следующим образом:
PHP:
$container['router'] = function (Container $c)
{
   return $c['router.public'];
};
Начиная с PHP 7.4 его можно сократить до:
$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 the fn part above becomes a reserved keyword which will be an issue if we want to support PHP 7.4 in the future. Unfortunately, we use fn as a method name within our Templater.

From XF 2.1.3 we have renamed the XF\Template\Templater::fn() method to XF\Template\Templater::func(). Because this would very likely break existing code we have kept the fn() method but it now simply calls the func() method.

We urge you from 2.1.3 onwards to replace any calls to fn() in your own code to func(). 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 the fn() method.
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу