1

我习惯在 glocal.ascx 中使用 c# 中的 application_start 事件。

我需要在 php 中创建类似的东西,所以当应用程序第一次加载时,我可以第一次缓存所有数据。

有谁知道我这样做的好方法。

4

2 回答 2

1

PHP 在 ASP.NET 中没有 AppDomain 之类的东西。

在 ASP.NET 中,一旦 AppDomain 进程和(同步)请求在此进程内作为“HttpContext 线程”处理,Web 服务器就会生成。异步 IHttpHandler 可以在多个线程上处理,但也共享同一个 AppDomain 进程。

在 PHP 中,每个请求都是一个进程(FastCGI 是一个线程),但您没有静态共享范围。一个脚本执行然后死掉。要在内存中共享数据,您需要像 memcache 这样的助手。

于 2013-07-04T17:01:51.337 回答
0

在 php 中,每个脚本依次运行所有代码,然后死亡。因此,如果我正确理解您的问题,您基本上希望将缓存系统构建到脚本的顶部。

在我更简单的项目中,我只包含一个文件(我称之为assign.inc),它处理我所有的站点范围/全局任务。它首先在每个页面上加载并设置我的会话/数据库连接等。

在我更大的项目中,我通过 index.php(通过 .htaccess)编写了所有流量,这将启动我的 CMS 类,它通过 __construct 完成所有操作。

这有帮助吗?

于 2013-07-04T16:25:26.227 回答