众所周知,Joomla支持不同类型的会话处理程序(文件,数据库,无,memcached等)。当用户将会话处理程序设置为“none”时,我们预计将不再有数据库查询来处理会话数据。
但是当您将会话处理程序设置为“无”时,您会看到您的#__session
仍有数据,并且每次点击时都会对此表进行查询。
在/libraries/cms/application/cms.php
中,您可以看到函数checkSession()
。
/**
* Checks the user session.
*
* If the session record doesn't exist, initialise it.
* If session is new, create session variables
*
* @return void
*
* @since 3.2
*/
在此函数中,您可以看到用于选择和插入#__session表的数据库查询。
如果你简单加“return;”由于会话处理程序设置为“none”,语句站点仍将完全正常运行。
为什么我们需要这个功能?为什么这个函数不检查我们使用什么类型的会话处理程序?这种行为是必要的还是我在函数开头添加return的解决方案是正常的?