我是网络编程的新手,我过去主要使用java来创建桌面应用程序.
我试图找出如何在PHP中创建持久对象.也许持久性不是正确的词,我不希望对象对每个客户端都是唯一的,就像我通过在会话变量中序列化它一样.我希望在服务器上创建对象,并始终可以访问同一个对象.该对象将查询数据库并存储一些数据.这样,每个页面加载,php代码将从同一个持久对象获取该数据,而不是每次都必须查询数据库.
我目前正在使用单例模式进行对象创建,因为我最初的理解是它可以让我完成我想要的.部分对象是一个数组,当我执行一个向数组添加值的php页面,并在同一页面上访问该值时,它很好.但是,当我向数组添加一个值,然后加载另一个访问该值的页面时,该数组将返回为空.
这可能吗?我是否过度反应认为查询数据库这么多是不好的?在任何一秒钟内,有时会有多达20个用户请求数据,我觉得每次查询数据库都是荒谬的.
谢谢
PHP没有像Java那样的持久性概念:JVM允许Java应用程序在HTTP请求之间持久存储在内存中; 每次提供新的HTTP请求时,Web服务器都会分叉一个新的PHP进程,因此对象的静态变量不会在请求之间为您保留数据.
使用数据库存储持久数据.Web编程侧重于并发性,因此您不必担心数据库查询 - 20秒就很少.如果达到数据库的限制,则可以通过添加只读从属来添加缓存层或"向外扩展"硬件.
通常,您可以使用数据库获得持久性.如果这是一个瓶颈,则开始缓存数据,例如在memcached中,或者可能是在Web服务器上带有序列化数组的本地文件.