3

我需要帮助记录 Zend Framewrok 应用程序(版本 1.11),每个请求..

我需要知道请求的时间和执行请求的时间。我想将每个请求保存到数据库中,但我不确定我会在哪里捕获这些信息。

我可能可以通过一些 _init 方法在 bootstrap.php 中捕获请求的开始。但是,如果我需要连接到数据库,我应该在哪里缓存有关执行请求结束的信息?此外,我在我的控制器中使用 $this->_redirector->gotoSimpleAndExit() 并且我需要在这种情况下计数 - 没有呈现视图并且请求仅通过 exit() 函数完成。

我想每个请求只写一次日志信息。

感谢帮助!

4

2 回答 2

1

注册关闭功能非常有用。 http://php.net/manual/en/function.register-shutdown-function.php

我创建了自定义记录器(单例模式),我在引导程序中调用它......因为 php 5.4 可用 $_SERVER['REQUEST_TIME_FLOAT']。Logger 在构造函数中将他的方法注册为关闭函数,并在他的析构函数中调用它。防止多次调用关闭函数。

即使调用了 exit() 函数,此解决方案也有效。

于 2012-06-16T11:00:35.213 回答
0

对于我的一个项目,我将“执行结束”日志记录代码放在我的布局脚本中。它应该是要执行的“最后”事情之一。

不过,我没有为这个项目使用重定向。所以,我不确定应该如何扩展它以考虑您的“gotoSimpleAndExit()”案例。

希望有帮助,

于 2012-06-15T07:13:51.013 回答