


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:
- Erstellen Sie eine benutzerdefinierte Konfigurationsdatei im Konfigurationsverzeichnis
- Fügen Sie Protokollfelder zur Datentabelle hinzu
- Schreiben Sie die Methoden zum Hinzufügen, Löschen und Ändern im Modell neu.
- Protokoll aufzeichnen
- Erstellen Sie eine benutzerdefinierte Konfigurationsdatei im Konfigurationsverzeichnis. Zuerst müssen wir eine benutzerdefinierte Konfigurationsdatei im Konfigurationsverzeichnis der Anwendung erstellen. Wir nennen diese Datei common_extra.php.
$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ügen- Als nächstes müssen wir einige Felder zur Datentabelle hinzufügen, um Hinzufügungen, Löschungen und Änderungen aufzuzeichnen und Abfrageoperationen. Wir können jeder Datentabelle die folgenden Felder hinzufügen:
- user_id (Operationsbenutzer-ID, kann leer sein) # 🎜🎜 # Aktion (Operationstyp, z. B. Hinzufügen, Löschen, Ändern)
- table_name (Datentabellenname der Operation)
- data (Daten der Operation) #🎜🎜 #
- created_at (Operationszeit)
- Schreiben Sie die Methoden zum Hinzufügen, Löschen und Ändern im Modell neu
- Jetzt müssen wir es tun Schreiben Sie die Methoden zum Hinzufügen, Löschen und Ändern im Modell neu, um die Protokollierung zu implementieren. Um dies zu erreichen, verwenden wir den globalen Abfragebereich. Wir werden die Methoden zum Erstellen, Aktualisieren und Löschen überschreiben.
- Bei jeder Methode erfassen wir den entsprechenden Vorgangstyp und die entsprechenden Daten. Anschließend schreiben wir die Protokolle mithilfe der Protokollklasse in die Protokolldatei.
Hier 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
- Durch die oben genannten Schritte haben wir die Funktion zum Protokollieren von Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgängen in ThinkPHP 5.1 erfolgreich implementiert.
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung