


Comment implémenter l'ajout, la suppression, la modification et vérifier l'enregistrement du journal des opérations dans ThinkPHP5.1
Jun 03, 2023 pm 05:22 PM
1. Introduction à la fonction de journalisation de ThinkPHP 5.1
Dans ThinkPHP 5.1, la fonction de journalisation a été intégrée. Nous pouvons l'utiliser dans nos applications pour enregistrer différents types d'événements, tels que des messages d'erreur, des informations de débogage et des opérations utilisateur. Quatre niveaux de journalisation sont fournis par le framework : DEBUG, INFO, NOTICE et ERROR.
En plus des niveaux de journalisation intégrés, nous pouvons également définir nos propres niveaux de journalisation. Nous pouvons donner un exemple en créant un niveau de journalisation nommé ? CRUD ? pour enregistrer les opérations d'ajout, de suppression, de modification et de requête.
Par défaut, les journaux seront enregistrés dans le répertoire des journaux sous le répertoire racine de l'application. Si vous devez modifier l'emplacement de stockage des journaux, vous pouvez le faire en modifiant le fichier de configuration. Les fichiers de configuration se trouvent généralement dans le répertoire de configuration de l'application.
2. Implémentation de l'enregistrement du journal des opérations d'ajout, de suppression, de modification et de vérification
Voyons comment implémenter l'enregistrement du journal des opérations d'ajout, de suppression, de modification et de vérification dans ThinkPHP 5.1. Nous allons l'implémenter selon les étapes suivantes :
Créer un fichier de configuration personnalisé dans le répertoire de configuration
Ajouter des champs de journal à la table de données
-
Réécrire les méthodes d'ajout, de suppression et de modification dans le Modèle
Enregistrer les journaux
Créer un fichier de configuration personnalisé dans le répertoire de configuration
Nous devons d'abord créer un fichier de configuration personnalisé et le placer dans le répertoire de configuration de l'application. Nous nommons ce fichier common_extra.php.
$config = [
'crud_log' => true, // 記錄增刪改查日志 'crud_ignore_fields' => ['create_time', 'update_time'] // 忽略日志記錄的字段
];
Dans la configuration, nous définissons deux options. Le premier est crud_log, qui est utilisé pour activer ou désactiver la journalisation. Le second est crud_ignore_fields, qui est utilisé pour spécifier les champs qui ne sont pas enregistrés.
Ajouter des champs de journal à la table de données
Ensuite, nous devons ajouter des champs à la table de données pour enregistrer les opérations d'ajout, de suppression, de modification et de requête. Nous pouvons ajouter les champs suivants à chaque table de données?:
id (clé primaire à incrémentation automatique)
user_id (ID utilisateur de l'opération, peut être vide)
action (type d'opération, tel que ajouter, delete, modifier )
table_name (nom de la table de données de l'opération)
data (données de l'opération)
created_at (heure de l'opération)
Réécrire les méthodes d'ajout, de suppression et de modification dans le Modèle
Maintenant, nous devons réécrire les méthodes d'ajout, de suppression et de modification dans le modèle pour implémenter la journalisation. Nous utiliserons la portée globale des requêtes pour y parvenir. Nous remplacerons les méthodes de création, de mise à jour et de suppression.
Dans chaque méthode, nous enregistrerons le type d'opération et les données correspondants. Nous écrirons ensuite les journaux dans le fichier journal en utilisant la classe log.
Voici un exemple de code?:
namespace appcommonmodel;
use thinkModel;
class User extends 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
Enfin, nous allons enregistrer. Dans l'exemple précédent, nous avons écrit le journal dans une table de données nommée ? log ?. Cependant, vous pouvez écrire les journaux dans un fichier, les envoyer à un serveur de journaux ou les envoyer ailleurs si vous le souhaitez.
Grace aux étapes ci-dessus, nous avons implémenté avec succès la fonction de journalisation des opérations d'ajout, de suppression, de modification et de requête dans ThinkPHP 5.1.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pour exécuter le projet ThinkPHP, vous devez?: installer Composer?; utiliser Composer pour créer le projet?; entrer dans le répertoire du projet et exécuter php bin/console serve?; visiter http://localhost:8000 pour afficher la page d'accueil.

ThinkPHP dispose de plusieurs versions con?ues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

étapes pour exécuter ThinkPHP Framework localement?: Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un h?te virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Comparaison des performances des frameworks Laravel et ThinkPHP?: ThinkPHP fonctionne généralement mieux que Laravel, en se concentrant sur l'optimisation et la mise en cache. Laravel fonctionne bien, mais pour les applications complexes, ThinkPHP peut être mieux adapté.

étapes d'installation de ThinkPHP?: Préparez les environnements PHP, Composer et MySQL. Créez des projets à l'aide de Composer. Installez le framework ThinkPHP et ses dépendances. Configurez la connexion à la base de données. Générez le code de l'application. Lancez l'application et visitez http://localhost:8000.

ThinkPHP est un framework PHP hautes performances présentant des avantages tels que le mécanisme de mise en cache, l'optimisation du code, le traitement parallèle et l'optimisation des bases de données. Les tests de performances officiels montrent qu'il peut gérer plus de 10 000 requêtes par seconde et qu'il est largement utilisé dans les sites Web à grande échelle et les systèmes d'entreprise tels que JD.com et Ctrip dans les applications réelles.

Suggestions de développement?: Comment utiliser le framework ThinkPHP pour le développement d'API Avec le développement continu d'Internet, l'importance de l'API (Application Programming Interface) est devenue de plus en plus importante. L'API est un pont de communication entre différentes applications. Elle peut réaliser le partage de données, l'appel de fonctions et d'autres opérations, et offre aux développeurs une méthode de développement relativement simple et rapide. En tant qu'excellent framework de développement PHP, le framework ThinkPHP est efficace, évolutif et facile à utiliser.

"Suggestions de développement?: comment utiliser le framework ThinkPHP pour implémenter des taches asynchrones" Avec le développement rapide de la technologie Internet, les applications Web ont des exigences de plus en plus élevées pour gérer un grand nombre de requêtes simultanées et une logique métier complexe. Afin d'améliorer les performances du système et l'expérience utilisateur, les développeurs envisagent souvent d'utiliser des taches asynchrones pour effectuer certaines opérations chronophages, telles que l'envoi d'e-mails, le traitement des téléchargements de fichiers, la génération de rapports, etc. Dans le domaine de PHP, le framework ThinkPHP, en tant que framework de développement populaire, offre des moyens pratiques d'implémenter des taches asynchrones.
