Zend Framework - Manajemen Sesi

Sesi adalah konsep yang sangat penting dalam aplikasi web. Ini memberikan opsi untuk mempertahankan data pengguna di server web untuk jangka waktu terbatas. Zend framework menyediakan komponen terpisah,zend-session untuk menangani informasi sesi.

Instal Komponen Sesi

Komponen sesi dapat diinstal menggunakan Composer seperti yang ditentukan di bawah ini -

composer require zendframework/zend-session

Komponen Sesi

Zend framework menyediakan enam komponen untuk menangani manajemen sesi. Semua komponen ini telah dijelaskan di bawah -

  • Zend\Session\Container - API utama untuk membaca dan menulis informasi sesi.

  • Zend\Session\SessionManager - Ini digunakan untuk mengelola seluruh siklus hidup sesi.

  • Zend\Session\Storage - Ini digunakan untuk menentukan bagaimana data sesi akan disimpan di memori.

  • Zend\Session\SaveHandler - Ini digunakan untuk menyimpan dan mengambil data sesi ke lokasi fisik seperti RDBMS, Redis, MangoDB, dll.

  • Zend\Session\Validator - Ini digunakan untuk melindungi sesi dari pembajakan dengan memeriksa silang alamat jarak jauh permintaan awal dan selanjutnya serta agen pengguna.

  • Zend\Session\Config\SessionConfig - Ini digunakan untuk mengkonfigurasi bagaimana sesi harus berperilaku.

Konfigurasi default sudah cukup untuk bekerja dengan sebuah sesi. Dengan menggunakan komponen di atas, semua aspek sesi dapat ditangani dengan mudah.

Contoh Komponen Sesi

Mari kita ikuti poin-poin berikut untuk membuat halaman baru untuk memahami sesi dalam kerangka Zend. Secara default, itu cukup untuk membuat sebuah instanceContainer kelas untuk mengelola sesi.

  • Buat tindakan baru, sessionAction di TutorialController.

  • Inisialisasi a Container obyek.

$c = new Container();
  • Periksa apakah kunci arbitrer countada. Jika kunci tidak tersedia, lakukan inisialisasicount dengan nilai 1. Jika tersedia, naikkan nilai seperti yang ditunjukkan pada kode berikut.

if (!isset($c->count)) { 
   $c->count = 0; } else { $c->count++; 
}
  • Daftarkan hitungan di ViewModel.

  • Buat file template untuk - sessionAction, session.phtml di myapp / module / Tutorial / view / tutorial / tutorial / session.phtml dan kemudian render count nilai.

  • Menyegarkan halaman akan meningkatkan nilai countdalam sesi tersebut. Daftar lengkapnya adalah sebagai berikut -

TutorialController.php

public function sessionAction() { 
   $c = new Container(); if (!isset($c->count)) { 
      $c->count = 0; } else { $c->count++; 
   }  
   $view = new ViewModel([ 'count' => $c->count, 
   ]);  
   return $view; 
}

session.pthml

Session data, COUNT = <?= $this->count ?>

Sample Result

Session data, Count = 5