Heim >PHP-Framework >Denken Sie an PHP >So implementieren Sie die Protokollierung von Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgängen in ThinkPHP 5.1
ThinkPHP ist ein sehr beliebtes PHP-Entwicklungsframework, das eine Vielzahl leistungsstarker Funktionen bietet und eine schnelle Entwicklung unterstützt. Unter diesen ist CRUD (CRUD) eine unverzichtbare Grundoperation in der Webentwicklung. Um den Betrieb der Anwendung besser verfolgen zu können, ist es sehr wichtig, Betriebsprotokolle aufzuzeichnen. In diesem Artikel erfahren Sie, wie Sie die Protokollierung von Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgängen in ThinkPHP 5.1 implementieren.
1. Einführung in die Protokollierungsfunktion von ThinkPHP 5.1
In ThinkPHP 5.1 wurde die Protokollierungsfunktion integriert. Wir können es in unserer Anwendung verwenden, um verschiedene Ereignisse wie Fehlermeldungen, Debugging-Informationen, Benutzeraktionen usw. aufzuzeichnen. Das Framework bietet vier Protokollierungsebenen: DEBUG, INFO, NOTICE und ERROR.
Zusätzlich zu den integrierten Protokollierungsstufen können wir auch unsere eigenen Protokollierungsstufen definieren. Beispielsweise können wir eine Protokollebene „CRUD“ erstellen, um Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge aufzuzeichnen.
Standardmäßig werden Protokolle im Protokollverzeichnis unter dem Stammverzeichnis der Anwendung aufgezeichnet. Wenn Sie den Speicherort des Protokolls ändern müssen, können Sie dies tun, indem Sie die Konfigurationsdatei ändern. Konfigurationsdateien befinden sich im Allgemeinen im Konfigurationsverzeichnis der Anwendung.
2. Implementierung der Protokollaufzeichnung von Vorgängen zum Hinzufügen, Löschen, Ändern und Überprüfen
Werfen wir einen Blick darauf, wie Protokollaufzeichnungen von Vorgängen zum Hinzufügen, Löschen, Ändern und Überprüfen implementiert werden in ThinkPHP 5.1. Wir werden die folgenden Schritte befolgen, um dies zu erreichen:
$config = [
'crud_log' => true, // 记录增删改查日志 'crud_ignore_fields' => ['create_time', 'update_time'] // 忽略日志记录的字段
];
In der Konfiguration legen wir zwei Optionen fest. Das erste ist crud_log, mit dem die Protokollierung aktiviert oder deaktiviert wird. Das zweite ist „crud_ignore_fields“, das zur Angabe von Feldern verwendet wird, die nicht protokolliert werden.
Protokollfelder zur Datentabelle hinzufügenHier ist ein Beispielcode:
namespace appcommonmodel;
use thinkModel;
class User erweitert Model#🎜 🎜#{
protected $table = 'users'; // 添加全局查询范围 protected static function init() { // 添加操作记录 static::beforeInsert(function ($item) { if (config('common_extra.crud_log')) { $item->user_id = session('user_id'); $item->action = 'add'; $item->table_name = $this->table; $item->data = json_encode($item->toArray(), JSON_UNESCAPED_UNICODE); $item->created_at = date('Y-m-d H:i:s', time()); Db::table('log')->insert($item->toArray()); } }); // 修改操作记录 static::beforeUpdate(function ($item) { if (config('common_extra.crud_log')) { $item->user_id = session('user_id'); $item->action = 'update'; $item->table_name = $this->table; $item->data = json_encode($item->toArray(), JSON_UNESCAPED_UNICODE); $item->created_at = date('Y-m-d H:i:s', time()); Db::table('log')->insert($item->toArray()); } }); // 删除操作记录 static::beforeDelete(function ($item) { if (config('common_extra.crud_log')) { $item->user_id = session('user_id'); $item->action = 'delete'; $item->table_name = $this->table; $item->data = json_encode($item->toArray(), JSON_UNESCAPED_UNICODE); $item->created_at = date('Y-m-d H:i:s', time()); Db::table('log')->insert($item->toArray()); } }); }
}
logging
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Protokollierung von Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgängen in ThinkPHP 5.1. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!