Session
Panada memiliki tiga media penyimpanan data session yang bisa digunakan yaitu cookie, database, cache dan 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:
-
Expiration
Expiration 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'. -
name
Name adalah nama cookie yang digunakan sebagai identitas session di browser.
-
cookie_expire
Cookie_expire menentukan berapa lama cookie session disimpan di browser.
-
cookie_path
Cookie_path menentukan path-mana berlakunya cookie session.
-
cookie_secure
Cookie_secure menentukan apakah cookie session hanya berlaku di protokol HTTPS saja atau tidak.
-
cookie_domain
Cookie_domain menentukan di mana session cookie berlaku. Jika Anda ingin session berlaku pada semua sub-domain, maka isikan dengan format '.domainanda.com'
-
driver
Driver menentukan media penyimpanan session. Pilihannya adalah cookie, database, cache dan native.
-
driver_connection
Koneksi yang digunakan pada driver database atau session.
Jika driver yang dipilih adalah database dan driver database yang digunakan adalah mysql, postgresql atau sqlite, berikut adalah struktur databasenya:
-
storage_name
Nama yang digunakan untuk menyimpan data session baik itu di dalam database (table) atapun cache (collection/namespace).
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();