Metode setKey

Metode setKey digunakan untuk menyimpan nilai di dalam variabel global $_SESSION, sehingga dapat tersedia dimana saja didalam semua kelas controller. Metode biasanya ini digunakan untuk menyimpan data setelah proses login berhasil.

Bentuk Umum

Berikut ini bentuk umum penggunaan metode setKey dari kelas SENE_Controller .

$this->setKey(mixed $values): $this

Parameter

Metode ini membutuhkan 1 parameter wajib.

$values

Nilai dari $values bisa berupa array atau object tergantung kebutuhan.

Pengaturan

Kunci untuk menyimpan sesi supaya tidak bentrok dengan aplikasi lain dalam 1 server yang sama, pengaturannya disimpan didalam file pengaturan. Berikut ini adalah contoh file pengaturan development.php.

...
$saltkey = 'semeframework21;;
...

Contoh

Berikut ini adalah contoh penggunaannya untuk API dalam proses otentifikasi pengguna (login) pada kelas controller.

<?php
class Login extends SENE_Controller {
  public function __construct(){
    parent::__construct();
    $this->setTheme('front');
    $this->load('front/b_user_model','bum');
  }
  .
  .
  .
  public function proses(){
    // ambil input yang dibutuhkan untuk login
    // biasanya email dan password
    $email = $this->input->post("email");
    $password = $this->input->post("password");

    // validasi email
    // ambil data user berdasarkan email
    // dari database melalui model bum
    // untuk melihat model bum ini di bagian metode constructor
    $user = $this->bum->getByEmail($email);
    if(isset($user->id)){
      //validasi password
      if(!password_verify($password, $user->password)){
        $this->status = 1707;
        $this->message = 'Invalid email or password';
        $this->__json_out($data);
        return false;
      }
      // kalau password cocok dengan yang ada di DB
      // maka user dianggap sudah berhasil login
      // karena sudah melewati 2 tahap ini

      // sekarang tinggal simpan data user ke session
      // dengan metode setKey();

      //buat variabel $sess dulu, berisikan standar kelas kosong
      $sess = new stdClass();

      // buat object user,
      // kemudian isi object tersebut dengan data user
      // yang telah diambil sebelumnya
      // dari database
      $sess->user = $user;

      // barulah setelah itu
      // masukan variabel $sess
      // kedalam parameter metode setKey()
      $this->setKey($sess);
    }else{
      $this->status = 1707;
      $this->message = 'Invalid email or password';
      $this->__json_out($data);
      return false;
    }
  }
  .
  .
  .
}

Tips

Baik setKey() maupun getKey() membutuhkan pengaturan $saltkey untuk berfungsi dengan baik.

Pelajari tentang pengaturan $saltkey di halaman Pengaturan Session .