


Bagaimana untuk melaksanakan pengelogan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan dalam ThinkPHP 5.1
Apr 11, 2023 am 09:15 AMThinkPHP ialah rangka kerja pembangunan PHP yang sangat popular Ia menyediakan pelbagai fungsi yang berkuasa dan menyokong pembangunan pesat. Antaranya, CRUD (CRUD) merupakan operasi asas yang amat diperlukan dalam pembangunan web. Untuk menjejaki operasi aplikasi dengan lebih baik, adalah sangat penting untuk merekodkan log operasi. Dalam artikel ini, kami akan meneroka cara melaksanakan pengelogan operasi tambah, padam, ubah suai dan pertanyaan dalam ThinkPHP 5.1.
1. Pengenalan kepada fungsi pengelogan ThinkPHP 5.1
Dalam ThinkPHP 5.1, fungsi pengelogan telah terbina dalam. Kami boleh menggunakannya dalam aplikasi kami untuk merekodkan pelbagai peristiwa seperti mesej ralat, maklumat penyahpepijatan, tindakan pengguna, dsb. Rangka kerja menyediakan empat peringkat pengelogan: DEBUG, INFO, NOTIS dan ERROR.
Selain tahap log terbina dalam, kami juga boleh menentukan tahap log kami sendiri. Sebagai contoh, kita boleh mencipta peringkat log "CRUD" untuk merekod operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan.
Secara lalai, log akan direkodkan ke direktori log di bawah direktori akar aplikasi. Jika anda perlu menukar lokasi storan log, anda boleh berbuat demikian dengan mengubah suai fail konfigurasi. Fail konfigurasi biasanya terletak dalam direktori konfigurasi aplikasi.
2. Pelaksanaan rakaman log operasi tambah, padam, ubah suai dan semak
Mari kita lihat cara melaksanakan rakaman log operasi tambah, padam, ubah suai dan semak dalam ThinkPHP 5.1. Kami akan melaksanakannya mengikut langkah berikut:
- Buat fail konfigurasi tersuai dalam direktori konfigurasi
- Tambah medan log pada jadual data
- Tulis semula penambahan, pemadaman dan pengubahsuaian dalam Kaedah Model
- Pengelogan
- Buat fail konfigurasi tersuai dalam direktori konfigurasi
Pertama, kita perlu mencipta fail konfigurasi tersuai dalam direktori konfigurasi aplikasi. Kami namakan fail ini common_extra.php.
$config = [
'crud_log'?=>?true,?//?記錄增刪改查日志 'crud_ignore_fields'?=>?['create_time',?'update_time']?//?忽略日志記錄的字段
];
Dalam konfigurasi, kami menetapkan dua pilihan. Yang pertama ialah crud_log, yang digunakan untuk menghidupkan atau mematikan log. Yang kedua ialah crud_ignore_fields, yang digunakan untuk menentukan medan yang tidak dilog.
- Tambah medan log pada jadual data
Seterusnya, kita perlu menambah beberapa medan pada jadual data untuk merekod operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan. Kami boleh menambah medan berikut pada setiap jadual data:
- id (kunci utama auto-incremented)
- user_id (id pengguna operasi, boleh kosong)
- tindakan ( Jenis operasi, seperti tambah, padam, ubah suai)
- nama_jadual (nama jadual data operasi)
- data (data operasi)
- dicipta_pada (masa operasi)
- Tulis semula kaedah penambahan, pemadaman dan pengubahsuaian dalam Model
Sekarang kita perlu menulis semula kaedah penambahan, pemadaman dan pengubahsuaian dalam Model untuk melaksanakan pengelogan. Kami akan menggunakan skop pertanyaan global untuk mencapai ini. Kami akan mengatasi kaedah cipta, kemas kini dan padam.
Dalam setiap kaedah, kami akan merekodkan jenis operasi dan data yang sepadan. Kami kemudian akan menulis log ke fail log dengan menggunakan kelas log.
Berikut ialah beberapa contoh kod:
namespace appcommonmodel;
gunakan 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()); ????????} ????}); }
}
- Membalak
Akhir sekali, kami akan log. Dalam contoh sebelumnya, kami menulis log ke jadual data bernama "log". Walau bagaimanapun, anda boleh menulis log ke fail, menghantarnya ke pelayan log, atau menghantarnya ke tempat lain jika dikehendaki.
Melalui langkah di atas, kami berjaya melaksanakan fungsi operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan dalam ThinkPHP 5.1.
Kesimpulan
Dalam artikel ini, kami memperkenalkan cara merekodkan log operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan dalam ThinkPHP 5.1. Dengan membandingkan kaedah operasi tradisional, kami mendapati bahawa menggunakan pengelogan boleh menjejaki operasi aplikasi dengan lebih baik, dan juga boleh digabungkan dengan lebih baik dengan alat lain untuk analisis. Saya harap pembaca boleh menggunakan pengalaman artikel ini untuk meningkatkan kebolehselenggaraan dan kebolehskalaan aplikasi.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengelogan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan dalam ThinkPHP 5.1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)