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 Resources\Session;
Konfigurasi
Bagian konfigurasi Library Session terletak pada file app/config/session.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.
-
cookieExpire
cookieExpire menentukan berapa lama cookie session disimpan di browser.
-
cookiePath
cookiePath menentukan path-mana berlakunya cookie session.
-
cookieSecure
cookieSecure menentukan apakah cookie session hanya berlaku di protokol HTTPS saja atau tidak.
-
cookieDomain
cookieDomain 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.
-
driverConnection
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:
-
storageName
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:
setValue
Berikut adalah contoh mengisikan nilai baru ke dalam session.
$this->session->setValue('user_id', '1234');
$this->session->setValue('user_email', [email protected]
');
$this->session->setValue('user_name', 'jhon');
Untuk mengisikan beberapa data sekaligus, bisa menggunakan variable array seperti contoh berikut:
$data = array('user_id' => '1234', 'user_email' => [email protected]
', 'user_name' => 'jhon');
$this->session->setValue($data);
getValue
Untuk mendapatkan data yang sudah disimpan di dalam session berikut adalah contohnya:
echo $this->session->getValue('user_id'); // Output: 1234
echo $this->session->getValue('user_email'); // Output: [email protected]
deleteValue
Berikut adalah contoh cara menghapus nilai session satu-persatu:
$this->session->deleteValue('user_id');
$this->session->deleteValue('user_email');
destroy
Untuk menghapus semua nilai sekaligus mereset cookie gunakan method destroy:
$this->session->destroy();
regenerateId
Untuk me-regenerate session id, method yang digunakan adalah regenerateId();
$this->session->regenerateId();