PHP架构:我该怎么做?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP架构:我该怎么做?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要一些帮助来理解 PHP的内部工作原理.

记住,在过去,我们曾经写过TSR(终止和驻留)例程(PRe-windows时代)?一旦执行该程序,它将保留在内存中,并可通过某些热键(alt-或ctrl-键组合)重新执行.

我想在Web服务器/应用程序中使用类似的概念.比方说,我有common_functions.PHP,它包含常用功能(如Generate_CITy_Combo()或Check_PErmission()或Generate_User_Permission_list()等)到该apache / PHP服务器上运行的所有Web应用程序.

在所有模块或应用程序的PHP文件中,我可以写:
require_once(common_functions.PHP);

这将包括所有模块和应用程序中的公共文件,并且工作正常.

我的问题是:PHP何在内部处理这个问题?
我有
两个应用程序AppOne和AppTwo.
AppOne有两个菜单选项:AppOne_Menu_PQR和AppOne_Menu_XYZ
AppTwo有两个菜单选项AppTwo_Menu_abc和APPTwo_Menu_DEF

所有这四个菜单项都从common_functions.PHP调用函数{如Generate_City_Combo()或Check_Permission()或Generate_User_Permission_list()}

现在考虑以下场景:
A)用户XXX登录并点击其个性化仪表板上的AppOne_Menu_PQR,然后他/她将完成所有屏幕和说明.这是一系列8-10页的请求(屏幕),它是交互式的.在此结束之后,用户XXX从他的个性化仪表板中点击AppTwo_Menu_DEF,并再次像之前他/她一样通过所有屏幕和指令(大约8-10页/屏幕).然后用户XXX注销.

B)用户XXX登录并执行方案A中提到的任何操作.同时,用户yyY也登录(来自其他客户端计算机)并执行方案A中提到的类似操作.

对于方案A,它是相同的会话.对于场景B,有两个不同的会话.

假设所有菜单选项都调用Generate_User_Permission_list()和Generate_Footer()或许多菜单选项调用Generate_City_Combo().

那么每次请求PHP会执行/包含common_functions.PHP多少次?每次会议?或者每个PHP启动/关闭?我的理解是common_functions.PHP将在每个页面请求/循环/加载/屏幕执行一次,对吗?基本上每次互动一次.

记住Generate_City_Combo()或Generate_Footer()等函数产生相同的输出或做同样的事情,无论是谁或何时调用.

我想在每个应用程序启动和关闭时将其限制为一次.

这些只是一些例子.我的实际问题要复杂得多.在我的应用程序中,我想只调用一次Application_Startup()例程,这将创建理想的环境(如所有查找和引用数据结构,只读数据,安全矩阵,菜单选项,上下文敏感的业务执行逻辑等. ).之后,所有进入服务器的请求都不需要花费任何时间或资来创建环境,但可以立即引用“已创建的环境”.

这在PHP是否可行?怎么样?你能指点我到某个地方或一些解释PHP内部工作的书吗?

提前致谢.

解决方法

PHP一个完全独立的执行框架中处理每个HTTP请求 – 没有持久的进程运行来为它们提供服务. (您的网络服务器正在运行,但每次加载PHP页面时,都会调用PHP解释器的单独实例.)

如果生成所需持久区域所需的时间很长,您可能希望考虑将这些脚本的输出缓存在磁盘上,并在缓存版本可用时首先加载(而不是过时).

脚本宝典总结

以上是脚本宝典为你收集整理的PHP架构:我该怎么做?全部内容,希望文章能够帮你解决PHP架构:我该怎么做?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。