我有两个模块,两个模块都使用类似的SQL值。例如,两者都获得用户头像,名称,注册日期等。是否可以将一个模块SQL请求加载到另一个模块?
答案 0 :(得分:1)
这是可能的。通常的方法是将常用SQL代码放入辅助类中。调用此帮助程序类的第一个模块将实际运行查询,然后将结果存储在静态变量中。对该模块的第二次调用将只返回该静态变量的内容。所有你需要确保的是第二个电话实际上要求同样的事情(例如,要求相同的头像,而不是另一个)。
这个系统在Joomla本身使用。请注意,缓存大对象会增加内存需求,您应该将其限制为几个记录和列,并避免以这种方式缓存TEXT或BLOB。
答案 1 :(得分:0)
这不是Hazzit考虑的替代品,只是一个扩展:所以你仍然会使用一个共同的帮助。
在您的模块中,您可以构建缓存键:因此,如果您为两个模块构建相同的缓存键(基于用户ID和自定义字符串),Joomla将不仅在整个请求中缓存它,而是在缓存过期之前
另外,如果查询拼写相同,它们也会被mysql缓存而不会运行两次。