加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在PHP中创建Singleton Webservice的最佳方法是什么?

发布时间:2020-12-13 21:37:08 所属栏目:PHP教程 来源:网络整理
导读:我们需要访问一次只允许一个连接的DB.这对我来说是“单身”.当然,捕获单个连接将通过Web服务(最可能是基于SOAP的Web服务 – 位于与调用应用程序不同的服务器上)直接或间接地暴露 – 这意味着可能有多个app / instance尝试连接到singleton类. 在PHP中,创建全
我们需要访问一次只允许一个连接的DB.这对我来说是“单身”.当然,捕获单个连接将通过Web服务(最可能是基于SOAP的Web服务 – 位于与调用应用程序不同的服务器上)直接或间接地暴露 – 这意味着可能有多个app / instance尝试连接到singleton类.

在PHP中,创建全局单例或Web服务单例的最佳方法是什么?

TIA

解决方法

在PHP中,没有“全局”对象存在于所有请求中.在java webserver中,这将被称为“应用程序级数据存储”.在php中,“全局”范围(使用global关键字)的范围是单个请求.现在,还有一个可通过$_SESSION访问的跨会话数据存储,但我试图强调,php中没有变量真正是“全局的”.单个值通过存储到本地文件或数据库来模拟全局,但对于像资源这样的东西,您将无法在每个请求上创建它.

现在,在请求级别,您可以创建一个Singleton,它将返回一个初始化资源,无论您调用它的请求中的哪个范围,但同样,该资源不会在请求之间或之间保持不变.我知道,这是php的一个缺点,但另一方面,个人请求的速度和稳定性有助于弥补这个缺点.
编辑:
在再次阅读了您的问题后,我意识到您可能不会要求单例数据库访问类,而是可以资源锁定您的数据库?根据你的说法,听起来数据库可能会为你锁定.换句话说,如果已经有另一个连接,它将不允许您连接.如果是这种情况,似乎有两种选择:
1)让你的所有页面争用资源,如果他们没有得到它就失败.

2)创建一个队列服务,可以接受查询,运行它们,然后缓存结果供以后检索.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读