谁能向我解释一下typo3中USER_INT的含义是什么?我知道它以某种方式禁用了插件的缓存,但我不明白为什么它被称为“USER_INT”(尤其是 INT 部分令人困惑)。谢谢你。
2 回答
那是历史名称。公平地说,它与包含 php-scripts 的不同方式有关。还有一些类似“tt_content”(“typo table”)的东西。不要想太多。
_INT 表示:未缓存的内容。缓存内容中没有输出,而是有一些占位符,因此 TYPO3 解析这些哈希并动态创建该部分内容。
这意味着,如果有一个或多个占位符,TYPO3 需要为每个请求执行代码。为此,您可能需要定义 includeLibs - 如果您需要加载其他脚本。
page = PAGE
page.typeNum=0
page.30 = USER_INT
page.30 {
userFunc = user_various->listContentRecordsOnPage
reverseOrder = 1
# include these files, before executing user_various->listContentRecordsOnPage
includeLibs = fileadmin/example/example_callfunction.php
}
我知道这是个老问题。但是,会在这里留下答案,希望它会对某人有所帮助。为简单起见,将使用示例以通俗易懂的方式对其进行解释。
USER
对所有用户都是全局的。
USER_INT
是用户[浏览器] 特定的。
INT 代表“内部缓存”,这意味着 TYPO3 不缓存对象。
示例:假设JMC\Ag\Utility\UX\Renderer->a
处理用户登录,假设成功登录后将显示一条消息“欢迎”,后跟用户名。当我登录我的帐户时,以下代码将向全世界浏览该网站的每个人显示“欢迎,约翰”:
__FRAMEWORK {
postCodefeature.5 = USER
postCodefeature.5.userFunc = JMC\Ag\Utility\UX\Renderer->a
}
这是因为我的浏览数据将存储在站点的公共(通用)用户会话变量中,浏览该站点的每个人都可以访问该变量。
以下代码将仅在我的浏览器中显示“Welcome, John” ,一旦我登录到我的帐户:
__FRAMEWORK {
postCodeContentBlock-1.5 = USER_INT
postCodeContentBlock-1.5.userFunc = JMC\Ag\Utility\UX\Renderer->a
}
这是因为我的数据现在存储在用户特定的(浏览器)会话变量中,只有我在浏览网站时可以访问。该网站的每个用户都会得到一个。
注意:不必知道这些数据的存储位置。TYPO3 自动执行此操作,因此开关:USER
和USER_INT
.