1

管理/CRM システムを作成しています。

libs フォルダーに、いくつかの静的関数を含む Util というクラスがあります。

システムのどこからでもユーザーアクションを記録するための静的関数を作成したい

Util::log($userId, $action) ;

libs フォルダー内の Model というクラスに含まれるデータベース クラスをインスタンス化する必要があるため、このデータをデータベースに渡す方法について少し疑問に思っています。

これを行う最もスムーズな方法は何ですか?

コントローラーフォルダーにログクラスを作成し、他のすべての非 lib コントローラーと同じように、独自の logModel クラスとインターフェイスさせる方がよいでしょうか?

4

1 に答える 1

1

どこからでもロギングを呼び出せる静的メソッドがあることに加えて、ログテーブルがデータベースにある場合、それはモデルの一部であると思うので、アプリケーションは、アプリケーション内のログインスタンスと logModel をマップするログクラスを宣言する必要がありますこれらのインスタンスを管理します。

静的メソッドには、この数行のコードのみを含める必要があると思います

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

そのため、アプリケーションのすべての部分で上記のコードを繰り返さないようにするだけです。

于 2013-02-16T10:54:37.710 に答える