我正在开发一个针对许多客户动态定制的 PHP 通用应用程序。
我有类client
,我在其中加载客户端的样式和首选项。
我的问题是:
在会话中保存该对象是一种好习惯吗?(我认为这是最好的解决方案,而不是在每个页面中创建对象,这将需要大量的 mysql 查询。
在处理会话时,您需要考虑的事项很少。
您不应该在会话中存储不同的大值。我认为在您的情况下这不是问题,因为偏好通常足够小。
当您在会话中存储对象时。您可能无法获得实时更新。例如,假设同一用户使用两个单独的浏览器和/或机器登录并在一个中修改首选项。在这种情况下,其他人将没有更新的自定义。这不是一个大问题,但取决于您的要求。
我在这里没有看到任何其他问题。实际上,它是在会话中存储小值并避免数据库查询的有效且良好的解决方案。
如果它不会改变,只会导致不断地调用 MySQL 查询,那么是的,这是一个好主意。
MySQL 查询(以及一般的函数)是内存/cpu 密集型的,并且会影响 PHP 的页面加载速度,因此您导致它执行的工作越少越好。
如果返回的值会不断变化,最好不要,而是在会话中存储可以存储的值。
我认为当客户端关闭浏览器时会话将终止。如果将其存储在 cookie 中(加载的客户端)?它不利于安全。
当您在会话(加载的服务器)中存储迷你数据时,这意味着您在服务器上使用了一些内存。当你有很多客户时会发生什么?
因此,应该在每个页面的进程结束时销毁数据库连接。不用担心使用它。