升级会话

文档

已更改的内容

  • 只有方法名称和库的加载等小事情发生了变化。

  • 数据库驱动程序中会话表的定义已更改。

升级指南

  1. 无论你在哪里使用会话库,用 $session = session(); 替换 $this->load->library('session');

  2. 从那时起,你必须用 $session 替换以 $this->session 开头的每一行,后面跟新的方法名。

    • 要访问会话数据,请使用语法 $session->item$session->get('item'),而不是 CI3 语法 $this->session->name

    • 要设置数据,请使用 $session->set($array);,而不是 $this->session->set_userdata($array);

    • 要删除数据,请使用 unset($_SESSION['some_name']);$session->remove('some_name');,而不是 $this->session->unset_userdata('some_name');

    • 要将会话数据标记为闪存数据,它只对下一次请求可用,请使用 $session->markAsFlashdata('item');,而不是 $this->session->mark_as_flash('item');`

  3. 如果你使用数据库驱动程序,你需要重新创建会话表。请参阅 DatabaseHandler 驱动程序

代码示例

CodeIgniter 版本 3.x

<?php

$this->load->library('session');

$_SESSION['item'];
$this->session->item;
$this->session->userdata('item');

CodeIgniter 版本 4.x

<?php

$session = session();

$_SESSION['item'];  // But we do not recommend to use superglobal directly.
$session->get('item');
$session->item;
session('item');