gpt4 book ai didi

php - ZF2 应用程序范围的 var(自定义唯一请求 ID)

转载 作者:行者123 更新时间:2023-12-04 05:04:32 25 4
gpt4 key购买 nike

我正在使用 Zend-Framework2,我想记录有关请求的信息。
不是所有的服务器都提供$_SERVER['UNIQUE_ID'],所以我想自己生成(格式见http://en.wikipedia.org/wiki/Universally_unique_identifier)。

在 ZF2 中,一切都在模块内完成,但我想创建一个应用程序范围的变量或常量,其中包含唯一 ID。
我可以将它添加到 index.php,但我认为这不是要走的路......另一个选择是唯一请求 ID 的生成是在被调用模块的 onBootstrap 方法中完成的,但是我'我重复自己,我认为这是不可取的。

理想情况下,我应该将这段代码放在哪里来生成 UUID 并将其添加为应用程序范围的变量/常量?

提前致谢!

类似问题:Log each request in ZF2

最佳答案

Another option is that the generation of the unique request id is being done in the onBootstrap method of the module that is called, but then I'm repeating myself and that is not desirable, I think.



我认为您在这里误解了 Ivo 模块。 onBootstrap方法会为每个拥有一个模块的模块调用,无论哪个模块最终被解析并为当前请求分派(dispatch)。这不是路由器找到 Controller 然后引导该单个模块的情况,它们都是在任何路由发生之前由 ModuleManager 引导的。

从这个角度来看,您可以将它放在一个模块中,在 Bootstrap 上生成 UUID。为了以方便的方式使其在站点范围内可用,将该值设置为服务,然后在服务管理器的任何地方都可以使用它。
public function onBootstrap(EventInterface $e) {
$sm = $e->getApplication()->getServiceManager();
$uuid = isset($_SERVER['UNIQUE_ID']) ? $_SERVER['UNIQUE_ID'] : yourUUIDGeneratingMethod();
$sm->setService('UUID', $uuid);
}

关于php - ZF2 应用程序范围的 var(自定义唯一请求 ID),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com