Session
Panada menggunakan session bawaan dari PHP (native session). Sebelm digunakan, library session terlebih dahulu harus diinisialisasi.
$this->session = new Library_session();
Konfigurasi
Bagian konfigurasi Library Session terletak pada file apps/config.php.
Anda bisa menyesuaikan parameter-parameter di bawah ini sesuai dengan kebutuhan.
Berikut adalah penjelasan dari masing-masing parameter:
-
session_expire
session_expire menentukan berapa lama waktu session bisa digunakan hingga expired. Waktu dihitung dimulai dari request terakhir.
Secara default Panada menetapkan waktu expired selama 2 jam (7200 detik).
Catatan: Parameter ini tidak berlaku jika Anda menggunakan Debian dan turunannya dan menggunakan pilihan 'native' pada parameter 'session_store'. -
session_name
session_name adalah nama cookie yang digunakan sebagai identitas session di browser.
-
session_cookie_expire
session_cookie_expire menentukan berapa lama cookie session disimpan di browser.
-
session_cookie_path
session_cookie_path menentukan path-mana berlakunya cookie session.
-
session_cookie_secure
session_cookie_secure menentukan apakah cookie session hanya berlaku di protokol HTTPS saja atau tidak.
-
session_cookie_domain
session_cookie_domain menentukan di mana session cookie berlaku. Jika Anda ingin session berlaku pada semua sub-domain, maka isikan dengan format '.domainanda.com'
-
session_store
session_store menentukan di mana tempat penyimpanan data session. Pilihannya adalah:
- native (file), yaitu mengikuti setting default PHP.
- database, yaitu menyimpannya ke dalam database.
Jika Anda memilih database, Anda harus mempersiapkan sebuah table dengan struktur seperti berikut:
-
session_db_name
Jika Anda menyimpan data session di dalam database dan ingin menggunakna nama table lain, silahkan tentukan pada parameter ini.
Session Methods
Berikut adalah method-method yang bisa digunakan dalam menangani session di Panada.
Contoh penggunaan masing-masing method di dalam controller adalah sebagai berikut:
Set
Berikut adalah contoh mengisikan nilai baru ke dalam session.
$this->session->set('user_id', '1234');
$this->session->set('user_email', 'jhon@myemail.com');
$this->session->set('user_name', 'jhon');
Untuk mengisikan beberapa data sekaligus, bisa menggunakan variable array seperti contoh berikut:
$data = array('user_id' => '1234', 'user_email' => 'jhon@myemail.com', 'user_name' => 'jhon');
$this->session->set($data);
Get
Untuk mendapatkan data yang sudah disimpan di dalam session berikut adalah contohnya:
echo $this->session->get('user_id'); // Output: 1234
echo $this->session->get('user_email'); // Output: jhon@myemail.com
Remove
Berikut adalah contoh cara menghapus nilai session satu-persatu:
$this->session->remove('user_id');
$this->session->remove('user_email');
Destroy
Untuk menghapus semua nilai sekaligus gunakan method destroy:
$this->session->destroy();
Session Clear All
Untuk menghapus semua nilai session sekaligus mereset cookie gunakan method session_clear_all. Method ini sangat disarankan untuk digunakan pada fungsi logout.
$this->session->session_clear_all();
Regenerate
Untuk me-regenerate session id, method yang digunakan adalah regenerate();
$this->session->regenerate();