У меня только что была ошибка из-за этого:
Fatal error: Cannot use TYPO3\CMS\Core\Utility\GeneralUtility
as GeneralUtility because the name is already in use
in /var/www/mysite/public/typo3temp/var/cache/code/cache_core/ext_localconf_feb178af00fe22e00dc62d7dcd6d4d16f5d4fc3a.php
on line 4508
В строке, которая нарушает работу:
use TYPO3\CMS\Core\Utility\GeneralUtility;
Очевидно, некоторые расширения используют "use" в ext_localconf.php
в моей системе , Поскольку все это объединено в один файл в кэше, это может привести к многократному использованию операторов.
Есть ли еще способ использовать «use», не вызывая этих ошибок? Каков рекомендуемый способ?
Я проверил документы:
Вы никогда не должны использовать оператор использования в глобальной области действия файлов - это может нарушить концепцию кэшированного сценария и привести к конфликту. с другими расширениями.
https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ConfigurationFiles/Index.html
Использование «использования» в рекомендуемой функции закрытия, например:
(function () {
// Add your code here
use TYPO3\CMS\Core\Utility\GeneralUtility;
// ...
})();
результаты в синтаксической ошибке на моей системе.
Что рекомендуют эксперты?
кстати. В этой области есть множественные некоторые расширения, которые имеют операторы использования в глобальной области видимости ext_localconf. php. Если я не ошибаюсь, это может сильно сломаться.