CakePHP如何全局记录API请求



我有一个基于CakePHP的API,名称为AccessLogController的控制器负责将访问日志保存到数据库中。

问题是:

CakePHP全局日志的最佳实践是什么?

我想我将调用AccessLogController方法从继承的AppController在过滤器回调之前,像这样:

 public function beforeFilter() {
        $accessLogCtrl = new AccessLogsController();
        $accessLogCtrl->add($param1, $param2);
    }

但我不确定这是不是一个好方法。

非常感谢您的建议

这不是你应该如何使用控制器,永远不会,除非在你的测试套件!

话虽这么说,使用AppController::beforeFilter()来全局记录控制器操作请求通常是好的,只是要确保您总是调用parent::beforeFilter(),以防您在扩展控制器中重写过滤器。

然而,你应该明确重构你的日志功能到一个实用程序类,一个组件,一个模型,甚至直接到AppController,这取决于它是如何实际记录的事情,如果你需要在AppController以外的地方使用它。

最新更新