TYPO3 - 禁用扩展缓存
Posted
技术标签:
【中文标题】TYPO3 - 禁用扩展缓存【英文标题】:TYPO3 - Disable cache for an extension 【发布时间】:2011-07-15 17:54:36 【问题描述】:我是 TYPO3 的初学者。我在 Kickstarter 上做了一个扩展,我只想为这个扩展禁用缓存,而不是我的 TYPO3 网站的其他页面。
我该怎么做?
非常感谢。
【问题讨论】:
【参考方案1】:您需要注意三个位置。首先看看你的 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;
应该可以的。
cu 罗马
【讨论】:
您对 ext_localconf.php 文件的建议刚刚解决了一些让我为 aaaaaages 发疯的问题...【参考方案2】:另外禁用或限制每页的缓存时间可能是一个解决方案 该设置位于 pageicon 编辑 -> 选项卡行为 -> 缓存设置下 (?no_cache=1 url 参数)
另一种方法是在数据更改时清除缓存 在 sysfolder 中/在其 ts 页面配置中为单页设置自动清除 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/
【讨论】:
如其他答案中所述 - 在页面属性中禁用缓存会导致该页面的完全缓存禁用,而不仅仅是扩展本身。【参考方案3】:将$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;
【讨论】:
这并不能解决所有问题,您仍然需要按照其他答案中的说明更改 ext_localconf.php。【参考方案4】:不幸的是,这些答案已经超过 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
【讨论】:
【参考方案5】:让我们用撰写本文时适用于 TYPO3 CMS 6.0.x-6.2.x 的最新信息来更新这个问题。如果你有一个尚未上线的开发站点,我会使用 FluidTYPO3 team 制作的 uncache 扩展。很高兴能够完全禁用缓存,直到您解决了错误,这样您就不会每 2 秒清除一次缓存。
uncache at TER(TYPO3 扩展库) uncache at GitHub【讨论】:
【参考方案6】:使用以下脚本从当前页面中删除缓存。
$GLOBALS['TSFE']->set_no_cache()
您可以在控制器文件中使用上述脚本。
【讨论】:
这将禁用整个页面缓存。不要使用它。以上是关于TYPO3 - 禁用扩展缓存的主要内容,如果未能解决你的问题,请参考以下文章