Php 基于MVC的web应用中的全局日志记录方法

Php 基于MVC的web应用中的全局日志记录方法,php,model-view-controller,model,controller,Php,Model View Controller,Model,Controller,我正在创建一个管理/crm系统 我的libs文件夹中有一个名为Util的类,它包含一些静态函数 我想创建一个静态函数,用于记录系统中任何位置的用户操作,即 Util::log($userId, $action) ; 让我疑惑的是,我应该如何将这些数据传递到我的数据库,因为我需要实例化我的数据库类,它包含在我的libs文件夹中名为Model的类中 最顺利的方法是什么 在my controllers文件夹中创建一个log类,并让它与自己的logModel类接口,与我所有其他非lib控制器的接口相同

我正在创建一个管理/crm系统

我的libs文件夹中有一个名为Util的类,它包含一些静态函数

我想创建一个静态函数,用于记录系统中任何位置的用户操作,即

Util::log($userId, $action) ;
让我疑惑的是,我应该如何将这些数据传递到我的数据库,因为我需要实例化我的数据库类,它包含在我的libs文件夹中名为Model的类中

最顺利的方法是什么


在my controllers文件夹中创建一个log类,并让它与自己的logModel类接口,与我所有其他非lib控制器的接口相同,这样做会更好吗?

除了有一个静态方法,让您可以从任何地方调用日志记录之外,我认为如果log表在db中,它就是模型的一部分,因此,应用程序必须声明一个日志类,该类映射应用程序中的日志实例和管理这些实例的日志模型

我认为静态方法必须只包含这几行代码

$l = new Log();
$l->setUserId($userId);
$l->setAction($action);
$lm = new logModel();
$lm->save($l);

因此,拥有它的效用就是不在应用程序的所有部分重复上述代码。

除了有一个静态方法,让您从任何地方调用日志记录之外,我认为如果日志表在数据库中,它是模型的一部分,因此,应用程序必须声明一个日志类,该类映射应用程序中的日志实例和管理这些实例的日志模型

我认为静态方法必须只包含这几行代码

$l = new Log();
$l->setUserId($userId);
$l->setAction($action);
$lm = new logModel();
$lm->save($l);
因此,拥有它的好处就是不在应用程序的所有部分重复上面的代码