Полезные фишки для миграции расширений при переходе на TYPO3 11+
Описание
Следующие хуки, связанные с class TypoScriptFrontendControllerи frontend-рендерингом, были помечены как устаревшие:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing']$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['isOutputting']$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-contentStrReplace']$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output']$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['hook_eofe']
Следующие методы также были помечены как устаревшие, так как они содержат только код, необходимый для выполнения хуков:
TypoScriptFrontendController->isOutputting()TypoScriptFrontendController->processContentForOutput()
Влияние
Если сторонние расширения используют хуки, E_USER_DEPRECATEDпри выполнении хука будет вызвана ошибка PHP.
Вызов двух указанных выше методов также вызовет E_USER_DEPRECATEDошибку PHP.
Затронутые установки
Установки TYPO3 с пользовательскими расширениями, использующими хуки или упомянутые выше, что обычно, если вместо этого они не использовали промежуточное ПО PSR-15 или другие хуки.
Миграция
Хук $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing']должен быть заменен на $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-cached']хук для индексации страниц. Однако обратите внимание, что $TSFE->contentсейчас это может содержать содержимое UTF-8, а не содержимое, уже преобразованное в определенный набор символов, связанный со metaCharsetсвойством TypoScript.
Начиная с TYPO3 v9, эмиттер HTTP-ответов основан на PSR-7, хук $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['isOutputting']можно удалить, поскольку TYPO3 можно настроить с помощью промежуточного программного обеспечения PSR-15, чтобы определить, следует ли эмитировать/отображать содержимое страницы или нет.
Крючок для динамической замены контента через $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-contentStrReplace']удален, так как он больше не нужен для TYPO3 Core. Если содержимое должно динамически изменяться, используйте промежуточное ПО PSR-15.
Хук $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output']не нужен, так как вместо этого его можно построить с помощью промежуточного программного обеспечения PSR-15, а весь контент возвращается через RequestHandler интерфейса TYPO3.
Расширения, использующие ловушку $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['hook_eofe'], должны быть преобразованы в промежуточное программное обеспечение PSR-15, так как это позволяет изменять содержимое и заголовки объекта ответа PSR-7.
Метод TypoScriptFrontendController->isOutputting()устарел и может быть удален в стороннем коде.
То же самое относится и к тому, TypoScriptFrontendController->processContentForOutput()что следует использовать только для запуска устаревших хуков, все еще применяемых в системе.
