Phalcon - Manajemen Sesi

Sesi adalah penyimpanan informasi sisi server yang membantu dalam interaksi pengguna dengan situs web atau aplikasi web. Setiap sesi didefinisikan secara unik dengan ID sesi, yang diteruskan ke server web setiap kali browser membuat permintaan HTTP. ID sesi dipasangkan setiap kali dengan database internal sehingga semua variabel yang disimpan diambil.

Sesi di Phalcon

Phalcon menggunakan komponen sesi yang menyertakan pembungkus untuk mengakses data sesi.

Berikut adalah fitur-fitur di Phalcon -

  • Data sesi dapat diisolasi dari komponen lain di domain yang sama.

  • Sesuai dengan kebutuhan aplikasi, nilai sesi dapat diubah dengan bantuan adaptor sesi.

Memulai Sesi di Phalcon

Semua aktivitas sesi dikaitkan dengan file adaptor yang dideklarasikan di Services.php file di dalam /config folder aplikasi web.

/** 
   * Start the session the first time some component requests the session service 
*/ 
$di->setShared('session', function () { 
   $session = new SessionAdapter(); 
   $session->start();  
   return $session; 
});

Membuat Sesi

Step 1 - Buat pengontrol sesi untuk membuat instance sesi sedemikian rupa sehingga data dapat diambil dengan tepat.

Step 2 - Buat sesi dengan nama dan nilai.

<?php  

class SessionController extends \Phalcon\Mvc\Controller { 
   public function indexAction() { 
      //Define a session variable 
      $this->session->set("user-name", "Omkar"); 
      
      //Check if the variable is defined 
      if ($this->session->has("user-name")) { 
         //Retrieve its value 
         $name = $this->session->get("user-name"); 
         echo($name); 
      } 
   } 
}

Kode di atas menghasilkan keluaran sebagai berikut.

Menghapus Sesi

Dimungkinkan untuk menghancurkan sesi atau membatalkan beberapa nilai variabel dalam sesi di Phalcon.

Berikut adalah sintaks untuk menghapus nilai variabel dalam sesi.

$this->session->remove(<variable-name>);

Seperti yang ditunjukkan pada contoh di atas, nama variabel yang dibuat dalam sesi tersebut adalah “data-content” yang dapat dihapus menggunakan kode berikut.

public function removeAction() { 
   // Remove a session variable with associated session 
   $this->session->remove("data-content"); 
}
;

Berikut ini adalah sintaks untuk menghancurkan sesi lengkap.

$this->session->destroy();