Heim  >  Artikel  >  PHP-Framework  >  So implementieren Sie die Protokollierung von Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgängen in ThinkPHP 5.1

So implementieren Sie die Protokollierung von Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgängen in ThinkPHP 5.1

PHPz
PHPzOriginal
2023-04-11 09:15:57967Durchsuche

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:

  1. Erstellen Sie eine benutzerdefinierte Konfigurationsdatei im Konfigurationsverzeichnis
  2. Fügen Sie Protokollfelder zur Datentabelle hinzu
  3. Schreiben Sie die Methoden zum Hinzufügen, Löschen und Ändern im Modell neu.
  4. Protokoll aufzeichnen
  5. Erstellen Sie eine benutzerdefinierte Konfigurationsdatei im Konfigurationsverzeichnis.
  6. 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
  1. 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:

id (automatisch inkrementierter Primärschlüssel)
  1. user_id (Operationsbenutzer-ID, kann leer sein) # 🎜🎜 #
  2. Aktion (Operationstyp, z. B. Hinzufügen, Löschen, Ändern)
  3. table_name (Datentabellenname der Operation)
  4. data (Daten der Operation) #🎜🎜 #
  5. created_at (Operationszeit)
  6. Schreiben Sie die Methoden zum Hinzufügen, Löschen und Ändern im Modell neu
  7. 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.
  8. 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

Endlich werden wir protokollieren. Im vorherigen Beispiel haben wir das Protokoll in eine Datentabelle namens „log“ geschrieben. Sie können die Protokolle jedoch in eine Datei schreiben, sie an einen Protokollserver senden oder bei Bedarf an einen anderen Ort senden.
  1. 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.
Fazit

In diesem Artikel stellen wir vor, wie das Protokoll von Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgängen in ThinkPHP 5.1 aufgezeichnet wird. Durch den Vergleich herkömmlicher Betriebsmethoden haben wir festgestellt, dass die Verwendung der Protokollierung den Betrieb der Anwendung besser verfolgen kann und auch besser mit anderen Analysetools kombiniert werden kann. Ich hoffe, dass die Leser die Erfahrungen dieses Artikels nutzen können, um die Wartbarkeit und Skalierbarkeit von Anwendungen zu verbessern.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn