在TYPO3后端,我可以清除不同类型的缓存:前端缓存,常规缓存,系统缓存......此外,还有一些选项可以清除安装工具中的缓存。
在许多情况下,特别是当我开发扩展时,我需要清除缓存以反映我所做的更改。但是,我从来都不知道需要清除哪些缓存,而且大多数时候,我清除每个缓存,直到我在重新加载页面时看到正确的输出。在其他情况下,例如,当我升级TYPO3时,我需要从安装工具中清除缓存,否则它会在旧的安装路径中查找php文件。
可以清除哪种不同的缓存?他们每个人之间有什么区别?每个命令清除哪些文件或数据库项?在这种情况下,每个clear caches命令都是必要的(即在修改哪种文件或信息时)?
答案 0 :(得分:6)
在TYPO3 6.2和7中:
您可以在后端系统>中看到所有缓存的配置。 SYS.caching.cacheConfiguration
部分中的配置。每个缓存都在一个或多个"组":all,system,pages中注册。菜单项反映了这些组:
cacheCmd=pages
):清除前端和页面相关的缓存。这使得TYPO3重新渲染通常被缓存的内容(除了USER_INT对象之外的所有内容)cacheCmd=all
):包括前端,以及由clearAllCache_additionalTables
扩展注册的一些缓存(即新闻缓存,realurl缓存)。尽管是all
,不包含系统缓存(这就是为什么它被称为"一般缓存"而不是"所有缓存" in菜单)。cacheCmd=system
):清除"系统相关的缓存",包括类加载器,本地化和扩展配置文件缓存。最好是让自己了解代码的哪些部分存储在哪个缓存中,以便您在更改内容时了解要刷新的内容:
ext_tables.php
,ext_localconf.php
,TCA
会缓存在cache_core =>中刷新系统缓存。config.no_cache = 1
。请注意,由于TYPO3 8.1后端菜单和整个系统已经简化,所以我们只剩下:
为了在不关心其中一些缓存的情况下简化开发,您可能希望单独关闭它们并关闭#34;。
$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;
答案 1 :(得分:1)
一般来说,当记录中的更改(通过编辑)未反映在页面上时,您需要清除前端和一般缓存(因为页面是高速缓存)。
系统缓存还可以保留与扩展程序不同的配置(所有这些内容来自ext_tables.php
,ext_localconf.php
,语言文件等),因此您需要在进行更改时清除它在这些文件中......以及向控制器注入示例新存储库时。
提示:有一些浏览器插件在地址栏中显示缓存清除图标(a.k.a.黄色闪存),即:TYPO3 Clear Cache用于Chrome
答案 2 :(得分:0)
因为还没有人提到这些文件: 有很多临时文件可以随时删除,有时必须删除。部分它们甚至包含在BE的缓存清除中。
基础文件夹是/typo3temp/
缓存在/typo3temp/Cache/
中完成,分为/typo3temp/Cache/Code/
和/typo3temp/Cache/Data/
这里收集了一些php文件(例如ext_tables.php)
的串联因为7LTS还有另一个需要手动删除的文件夹:typo3temp/autoload/
其中存储了类信息以进行自动加载。特别是如果您开发新的扩展名,则不会在每次编辑时自动清除此文件夹。