Typo3 - 禁用扩展的缓存

时间:2011-03-15 12:00:54

标签: typo3

我是typo3的初学者,我已经使用Kickstarter进行了扩展,我想仅为此扩展禁用缓存,而不是我的typo3网站的其他页面。

我该怎么做?

非常感谢。

6 个答案:

答案 0 :(得分:27)

你需要注意三个地点。首先看看你的ext_localconf.php文件。对于每个插件(通过插件,我的意思是前端插件),有一行类似于这一行:

t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_yourext_pi1.php', '_pi1', 'list_type', 1);

要禁用缓存,您需要将最后一个值设置为零,如下所示。

t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_yourext_pi1.php', '_pi1', 'list_type', 0);

在插件的PHP文件中(例如pi1 / class.tx_yourext_pi1.php),您需要确保删除以下行,注释掉或更改为" false"

$pi_checkCHash = true;

最后,将此行添加到main()函数(其余部分以下):

$this->pi_USER_INT_obj = 1;

应该这样做。

铜 罗马

答案 1 :(得分:3)

同样,禁用或限制每页的缓存时间可能是一种解决方案 该设置位于pageicon edit - >标签行为 - >缓存设置 (?no_cache = 1 url参数)

另一种方法是在数据更改时清除缓存 在一个sysfolder中/在其ts页面配置中为单个页面设置一个autoclear TCEMAIN.clearCacheCmd = 1,3,5 - 数字是pid逗号分隔 TCEMAIN.clearCacheCmd = all - 或清除所有缓存

http://typo3blog.at/blog/artikel/typo3-caching-grundlagen/

http://typo3weblog.de/2008/07/26/tcemainclearcachecmd-statt-clear-cache-button/

答案 2 :(得分:1)

使用$GLOBALS['TSFE']->set_no_cache() will disable caching 整个页面

  

如果要禁用页面缓存,请调用函数$GLOBALS["TSFE"]->set_no_cache()。在开发过程中调用它!如果您创建的内容可能未被缓存,请调用它。

Other sources是解释性的。

相反,请确保您的扩展程序类型为USER_INT,参见the docs

$this->pi_USER_INT_obj = 1;

答案 3 :(得分:1)

不幸的是,这些答案已有8年以上的历史了。如今,ExtensionUtility类提供了一个用于基于操作禁用缓存的开关:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'MyCompany.' . $_EXTKEY,
    'Sample',
    ['Sample' => 'index'],
    // non-cacheable actions:
    ['Sample' => 'index']
);

https://docs.typo3.org/typo3cms/ExtbaseFluidBook/4-FirstExtension/7-configuring-the-plugin.html

答案 4 :(得分:0)

在撰写本文时,让我们使用适用于TYPO3 CMS 6.0.x-6.2.x的最新信息更新此问题。如果您的开发站点尚未生效,我使用了FluidTYPO3 team生成的uncache扩展名。很高兴能够完全禁用缓存,直到你得到错误,这样你就不会每2秒清除一次缓存。

答案 5 :(得分:-3)

使用以下脚本从当前页面删除缓存。

$GLOBALS['TSFE']->set_no_cache() 

您可以在控制器文件中使用以上脚本。