0

我有两个模块,它们都使用相似的 SQL 值。例如两者都在获取用户头像、姓名、注册日期等。是否可以将一个模块 SQL 请求加载到另一个模块中?

4

2 回答 2

1

这是可能的。通常的方法是将通用 SQL 代码放入帮助程序类中。调用此帮助程序类的第一个模块将实际运行查询,然后将结果存储在静态变量中。对该模块的第二次调用将只返回该静态变量的内容。您需要确保的是,第二次调用实际上是在要求相同的东西(例如,要求相同的头像,而不是不同的头像)。

该系统在整个 Joomla 本身中都使用。请注意,缓存大对象会增加内存需求,您应该将其限制为仅几条记录和列,并避免以这种方式缓存 TEXT 或 BLOB。

于 2013-03-11T13:52:19.007 回答
0

这不是 Hazzit 考虑的替代品,只是一个扩展:所以你仍然会使用一个通用的助手。

在您的模块中,您可以构建缓存键:因此,如果您为两个模块构建相同的缓存键(基于用户 id 和自定义字符串),Joomla 不仅会在整个请求期间缓存它,而且直到缓存过期。

此外,如果查询拼写相同,它们也将被 mysql 缓存并且不会运行两次。

于 2013-03-12T08:38:21.973 回答