СправошнаяПоиск

Устаревшее: #91012 — различные хуки, связанные с TypoScriptFrontendController

Полезные фишки для миграции расширений при переходе на 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()что следует использовать только для запуска устаревших хуков, все еще применяемых в системе.