Upgrade Sessions
Documentations
What has been changed
Only small things like the method names and the loading of the library have changed.
The definition of the session table in Database Driver has changed.
Upgrade Guide
Wherever you use the Session Library replace
$this->load->library('session');
with$session = session();
.From that on you have to replace every line starting with
$this->session
with$session
followed by the new method name.To access session data use the syntax
$session->item
or$session->get('item')
instead of the CI3 syntax$this->session->name
.To set data use
$session->set($array);
instead of$this->session->set_userdata($array);
.To remove data use
unset($_SESSION['some_name']);
or$session->remove('some_name');
instead of$this->session->unset_userdata('some_name');
.To mark session data as flashdata, which will only be available for the next request, use
$session->markAsFlashdata('item');
instead of$this->session->mark_as_flash('item');`
If you use Database Driver, you need to recreate the session table. See DatabaseHandler Driver.
Code Example
CodeIgniter Version 3.x
<?php
$this->load->library('session');
$_SESSION['item'];
$this->session->item;
$this->session->userdata('item');
CodeIgniter Version 4.x
<?php
$session = session();
$_SESSION['item']; // But we do not recommend to use superglobal directly.
$session->get('item');
$session->item;
session('item');