- Seme Framework
- versi 4.0.3 (ID)
- Persyaratan
- Download & Install
- Pengaturan
- Tutorial
- Perutean URI
- Konstanta
- Variabel Global
- Model
- View
- Controller
- Library
- CLI (command line interface)
- Core
Kelas Core
Seme Framework memiliki kemampuan untuk memperluas model atau kelas controller dari pada kelas bawaan dengan konsep pengembangan kelas core ini.
Arti dari core
disini bukan inti kode Seme Framework, melainkan merujuk pada konsep pengembangan kelas dari inti kelas Seme Framework.
Kapan saya harus menggunakan kelas Core?
Gunakan fitur ini hanya ketika anda membutuhkan metode atau properti yang diperluas dan digunakan secara menyeluruh.
Mengaktifkan Kelas Core
Kelas core pada bawaan framework dalam kondisi tidak aktif. Sekarang kita akan mempelajari cara mengaktfikannya.
Merubah Pengaturan
Asumsikan, nilai dari prefix kelas core adalah ji_
dan nama kelas core untuk controllernya adalah controller
serta nama kelas core modelnya adalah model
.
Maka, pada pengaturan corenya cukup diisi sesuai dengan nama filenya, tanpa akhiran .php
.
Untuk lebih jelasnya, lihat contoh kode pengaturan dibawah ini.
...
/********************************/
/* == Core Configuration == */
/* register your core class, and put it on: */
/* - app/core/ */
/* all var $core_* value in lower case string*/
/* @var string */
/****************************/
$core_prefix = 'ji_';
$core_controller = 'controller';
$core_model = 'model';
...
Struktur file dan direktori
Setelah pengaturannya dibuat, kita akan membuat file core berdasarkan struktur file dan direktori seperti ini.
app/
└── core/
|── ji_controller.php
└── ji_model.php
File JI_Controller.php
Pada contoh ini, kita akan menambahkan metode baru buatan sendiri yaitu metode __json_out
kedalam kelas JI_Controller
.
Kemudian, jangan lupa juga untuk menambahkan metode __construct
dan method index
, karena diperlukan dari abstract class SENE_Controller .
<?php
/**
* Main controller: contains about methods and protperties that automtically included after extending in a class
*/
class JI_Controller extends SENE_Controller
{
// required function for triggering parent class
public function __construct()
{
parent::__construct();
}
/**
* Output the json formatted string
* @param mixed $dt input object or array
* @return string sting json formatted with its header
*/
public function __json_out($dt)
{
$this->lib('sene_json_engine', 'sene_json');
$data = array();
if (isset($_SERVER['SEME_MEMORY_VERBOSE'])) {
$data["memory"] = round(memory_get_usage()/1024/1024, 5)." MBytes";
}
$data["status"] = (int) $this->status;
$data["message"] = $this->message;
$data["data"] = $dt;
$this->sene_json->out($data);
die();
}
//required function from abstract class
public function index(){ }
}
File JI_Model.php
Sementara, contoh kode sumber untuk file JI_Model.php
kita akan mencoba menambahkan 2 metode baru kedalam kelas JI_Model
yaitu __encrypt
dan __decrypt
.
Metode __encrypt
digunakan untuk mengenkripsi data dengan AES_ENCRYPT.
Sementara, metode __decrypt
digunakan untuk mengenkripsi data dengan AES_DECRYPT.
<?php
class JI_Model extends SENE_Model
{
public function __construct()
{
parent::__construct();
}
/**
* Generates encryption command
* @param [type] $val [description]
* @return [type] [description]
*/
public function __encrypt($val)
{
return 'AES_ENCRYPT('.$this->db->esc($val).',"'.$this->db->enckey.'")';
}
/**
* Generates decryption command
* @param [type] $key [description]
* @return [type] [description]
*/
public function __decrypt($key)
{
return 'AES_DECRYPT('.$key.',"'.$this->db->enckey.'")';
}
}
Referensi Luar
Berikut ini adalah referensi luar yang digunakan dalam dokumen ini: