2014-12-05 4 views
1

В бэкэнде TYPO3 я могу очистить различные типы кеша: внешние кеши, общие кэши, системные кеши ... Кроме того, есть также варианты очистки кэшей в инструментах установки.TYPO3: Каковы различные типы кешей?

Во многих случаях, особенно когда я разрабатываю расширение, мне нужно очистить кеши, чтобы отразить изменения, которые я сделал. Тем не менее, я никогда не знаю, какие кеши мне нужно очистить, и большую часть времени я очищаю каждый, пока не увижу правильный вывод при перезагрузке страницы. В других случаях, когда я обновляю TYPO3, например, мне нужно очистить кеши от инструментов установки, иначе он ищет файлы php на старом пути установки.

Каковы различные типы кешей, которые можно очистить? В чем разница между каждым из них? Какие файлы или элементы базы данных удаляются каждая команда? В этом случае необходима каждая команда четких кешей (т. Е. При изменении какого типа файла или информации)?

ответ

5

В TYPO3 6.2 и 7:

Вы можете увидеть настройка всех кэшей в бэкэнд-системе> Конфигурация в разделе SYS.caching.cacheConfiguration. Каждый кеш зарегистрирован в одной или нескольких «группах»: все, система, страницы. Пункты меню отражают эти группы:

  • «Флеш фронтэнда кэши» (cacheCmd=pages): Очищает внешний интерфейс и страницы, связанные с кэши. Это делает TYPO3 повторно отображаемым контентом, который обычно кэшируется (все, кроме объектов USER_INT).
  • «Скрытые общие кэши» (cacheCmd=all): включает в себя интерфейс, а также некоторые кэши, зарегистрированные с помощью расширений с clearAllCache_additionalTables (т. Е. Кеш новостей, кеши реального времени). Несмотря на то, что allне включает системные кеши (и поэтому он называется «общие кеши», а не «все кеши» в меню).
  • «Сброс системных кешей» (cacheCmd=system): очищает «связанные с системой кеши», включая кеширование классов, локализацию и расширение файлов конфигурации.
  • Инструмент установки «Очистить все кеши»: это трудный способ «удалить все файлы typo3temp/var/Cache», а также все кэш-таблицы MySQL («cf_ *», то есть Extbase Reflection). Затем он проходит через все зарегистрированные кэши и очищает их все.

Так лучше, чтобы получить себе знать, какие части вашего кода, хранятся в каком кэше так, чтобы вы поняли, что смывать, когда вы что-то изменить:

  • PHP классы Extbase имеют их содержание разобрана так называемый «Reflection Cache» (т.е.аннотации) =>Системный кеш системы.
  • настройки расширения Вы ext_tables.php, ext_localconf.php, TCA кэшируются в cache_core =>кэш Промывайте систему.
  • Ваши жидкие шаблоны скомпилированы в PHP-код =>Системный кеш-флеш.
  • Ваш PHP-код может быть кэширован с помощью «opcache» вашего PHP. Обычно opcaches настроены на проверку времени модификации файла, поэтому обычно вам не нужно очищать любой opcache после изменения файлов PHP. Это может быть не так в некоторых сценариях, или если вы работаете через символические ссылки системного времени, не синхронизируется, тогда вам может понадобиться очистить opcache после изменения кода PHP =>Установить инструмент очистить весь кеш.
  • Ваш TypoScript также кэшируется (cache_hash) =>Флеш-интерфейсные кеши. Обратите внимание: если вы измените TypoScript в резервной копии, это автоматически автоматически очистит эти кеши.
  • Если ваши изменения также повлияют на кешированный вывод, который отображается в интерфейсе, вам также может понадобиться Флеш-фрейм-код. Чтобы этого избежать, вы можете установить свой TypoScript: config.no_cache = 1.

Пожалуйста, обратите внимание, что начиная с TYPO3 8.1, меню во внутреннем интерфейсе и вся система была упрощена, так что мы только оставили:

  • «Флеш фронтэнда кэши»: Очищает фронтэнда и страницы, связанные с кэши , как раньше.
  • «Очистить все кеши»: более или менее то, что ранее выполнял инструмент установки. Это, таким образом, включает также все кэши расширения, отражение, системные кеши. Так как он включает «очистку opcache», здесь также будут отражены изменения файла PHP.

Чтобы облегчить развитие, не заботясь о некоторых из этих кешей, вы можете отключить их отдельно.

$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pages']['backend'] = NullBackend::class; 
$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_pagesection']['backend'] = NullBackend::class; 
$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['cache_hash']['backend'] = NullBackend::class; 
$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['extbase_object']['backend'] = NullBackend::class; 
$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations']['extbase_reflection']['backend'] = NullBackend::class; 

См: https://docs.typo3.org/typo3cms/CoreApiReference/CachingFramework/Configuration/Index.html#how-to-disable-specific-caches

1

В очень общем вам нужно очистить фронтэнда и вообще кэши, когда изменения, внесенные в записи (при редактировании) не отражаются на странице (потому что страница кэшируется).

система кэш дополнительно поддерживает различные конфигурации из расширений (все эти вещи из ext_tables.php, ext_localconf.php, языковые файлы и т.д.), так что вам нужно, чтобы очистить его, делая изменения в этих файлах ... но и при введении в Например, новый репозиторий для контроллеров.

СОВЕТ: есть некоторые плагины для браузеров, который отображает кэш клирингового значок (он же желтые фотовспышки) в адресной строке, то есть: TYPO3 Clear Cache для Chrome

+0

Благодарим вас за отзыв о расширении Chrome. Думаю, это будет полезно! Ваш ответ не полностью отвечает на мой вопрос, но это отличное начало. –

+0

Извините, ваш вопрос слишком широк, там я написал, что _very general_, описывая полное кэширование TYPO3 - это хороший материал для всей книги;) или, по крайней мере, большая брошюра. – biesior

0

, как никто не упоминал файлы еще: есть много временных файлов, которые могут быть удалены в любое время, и должны быть удалены иногда. частично они даже включены в очистку кэша от BE.

базовая папка /typo3temp/

кэширование выполняется в /typo3temp/Cache/, который делится на /typo3temp/Cache/Code/ и /typo3temp/Cache/Data/

здесь собраны конкатенацию некоторых PHP-файлов (например, ext_tables.php)

так 7LTS есть другая папка, которая иногда требует ручного удаления: typo3temp/autoload/, где информация о классе сохраняется для автозагрузки. Особенно, если вы разрабатываете новые расширения, эта папка не очищается автоматически при каждом редактировании.