页面响应后的 Cakephp 3 处理代码

Cakephp 3 process code after page response

我正在从事的项目的一个要求是我记录与该网站的连接,由于为获得尽可能多的信息而进行的处理量很大,我想在页面已发送回用户。

此刻我正在 运行在我的 appController 的 afterFilter 中设置我的代码:

public function afterFilter(Event $event){
    $log_request = new  RequestsController;
    $log_request->log_request();    
}

我正在尝试 运行 在我的 appController 的 afterRender 中这样做:

public function afterRender(Event $event, $viewFile){
   $log_request = new  RequestsController;
   $log_request->log_request();    
}

但我似乎无法让代码执行,或者如果它执行了,那么我不知道如何找出抛出的错误是什么。

如果有人可以向我指出正在完成的示例或执行此操作的并发方法(需要在请求后的一秒内记录),我将不胜感激。

$log_request = new RequestsController; 你不会在控制器内部实例化控制器。在使用基于 MVC 的框架时,你想先学习 the MVC design pattern ,否则你最终会得到一段不可维护的可怕的意大利面条代码。我建议你做博客教程以获得基本的了解。

If somebody can point me towards an example of this being done or a concurrent method of doing this (it needs to be logged within a second of the request) I would appreciate it.

阅读本章:CakePHP Logging取自那里:

Logging data in CakePHP is easy - the log() function is provided by the LogTrait, which is the common ancestor for many CakePHP classes. If the context is a CakePHP class (Controller, Component, View,...), you can log your data. You can also use Log::write() directly.

将日志特征添加到 AppController,将请求传递给 log() 方法并配置日志记录以将这些请求记录到您喜欢的任何内容 afterRender() 或者如果您真的想晚点做, 在 __destruct().

中完成