laravel中请求计数的静态变量


static variable for request count in laravel

在我的routes.php中,我有一个调试过滤器,如下所示:

Route::filter('debug', function() {
  if(App::environment() !== 'dev') { return; }
  error_log("'n'n'n'n REQUEST NO. " . $staticRequestCount++ . "'n'n");
  // log the request headers
  // log the request body

我是php和laravel的新手。是否可以创建一个如上所述的静态requestCount变量,该变量一直在增加,直到您重新启动服务器(或类似的)?

在php中,如果不使用外部存储支持,就不可能在不同的请求之间共享变量。根据apacheworker实现,每个请求都将是一个单独的进程或线程。因此,代码无法在内存中共享一个公共变量作为计数器。

您可以通过将计数器值写入缓存来完成此操作。检出APCmemcached

我认为这是不可能的。您无法检测服务器是否使用PHP重新启动。但您可以简单地将这样的计数器保存到文件中,并在每次运行过滤器时从文件中读取它,增加它并保存修改后的值,但如果服务器重新启动,它当然不会自动删除(或设置为0)。