Postingan lainnya
tutorial membuat aktifitas log
bagaimana membuat aktifitas log dengan data lognya di simpan pada DB
1
2 Jawaban:
Buat kelas Logger, tanggung jawabnya menginsert data log kedalam sebuah tabel yang berisi history log, misalkan namanya 'activity_log'.
class Logger {
public function __construct ($database) {
$this->database = database; // koneksi dan query ke database
$this->table_name = 'activity_log'; // nama tabel
}
public function record ($activity_name, $data) { //method untuk merekam aktivitas
$toRecord = array();
$toRecord['name'] = $activity_name;
$toRecord['data'] = json_encode($data);
$toRecord['datecreated'] = date("Y-m-d h:i:s");
$result = $this->database->insert($this->table_name, $toRecord); // simpan data ke tabel
if(!$result):
return false;
endif;
return $result;
}
}
Ini desain table nya
CREATE TABLE activity_log (`id` int, `name` varchar(255), `data` TEXT, `datecreated` DATETIME);
misalkan terdapat model untuk menambahkan data buku,
class BookModel {
public function __construct ($database, $logger) {
$this->database = $database; // koneksi dan query ke database
$this->logger = $logger; // objek dari class Logger untuk merekam aktivitas
$this->table_name = 'book';
}
public function add ($nama, $halaman, $author) { // method untuk menambah kan buku
$toInsert = array();
$toInsert['nama'] = $nama;
$toInsert['halaman'] = $halaman;
$toInsert['author'] = $author;
$flag = $this->database->insert('book', $toInsert); // simpan buku
$this->logger->record('tambah buku', array('name' => $nama)); // rekam aktivitas penambahan buku
return ($flag)? $flag: false;
}
}
jadi pada saat si class BookModel dibuat menjadi Objek, dan dipanggil method 'add' - nya, maka tabel activity_log juga akan diberitahu bahwa ada penambahan buku dari Objek BookModel.
$bookm = new BookModel($database, $logger); // buat objek book model
$bookm->add('belajar javascript sampai dewa', '300', 'Brendan Eich'); // simpan data buku, dan table activity log juga akan terisi
1