我有一个基于CakePHP的API,名称为AccessLogController的控制器负责将访问日志保存到数据库中。
问题是:
CakePHP全局日志的最佳实践是什么?
我想我将调用AccessLogController方法从继承的AppController在过滤器回调之前,像这样:
public function beforeFilter() {
$accessLogCtrl = new AccessLogsController();
$accessLogCtrl->add($param1, $param2);
}
但我不确定这是不是一个好方法。
非常感谢您的建议
这不是你应该如何使用控制器,永远不会,除非在你的测试套件!
话虽这么说,使用AppController::beforeFilter()
来全局记录控制器操作请求通常是好的,只是要确保您总是调用parent::beforeFilter()
,以防您在扩展控制器中重写过滤器。
然而,你应该明确重构你的日志功能到一个实用程序类,一个组件,一个模型,甚至直接到AppController
,这取决于它是如何实际记录的事情,如果你需要在AppController
以外的地方使用它。