php - Laravel 4 - 创建自定义 session 驱动程序

标签 php mysql session laravel laravel-4

我想在 Laravel 4 中创建一个自定义(数据库) session 驱动程序。现有的 Laravel 数据库驱动程序只允许一个静态格式的数据库表和一个数据字段,而我有一个包含多个字段的现有数据库表和格式。

我希望能够以某种方式使用 Session::extend 函数,就像使用 Auth::extend 一样,但情况似乎并非如此。似乎 session 甚至在 global.php 文件运行之前就已创建。

到目前为止,我得到的唯一可行解决方案是复制粘贴大部分相关文件(PdoSessionHandler、SessionManager 和 SessionServiceProvider),然后将它们粘贴在一起。这显然是一种会在未来产生问题的解决方案。

如何创建自己的自定义 session 驱动程序?

最佳答案

您是正确的,您需要扩展 SessionHandler 并创建一个新的 ServiceProvider,然后设置配置以将 session 指向您的新提供商。 您应该能够使用新处理程序中的新数据库字段施展您的特殊魔法。

class CompanySessionHandler extends DatabaseSessionHandler {

    /**
     * {@inheritDoc}
     */
    public function read($sessionId) 
    {
        //read from your database
    }
    /**
     * {@inheritDoc}
     */
    public function write($sessionId, $data) 
    {
        //write to your database
    }
}

除此之外,我不确定您还在寻找什么。

关于php - Laravel 4 - 创建自定义 session 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699734/

相关文章:

java - MySQL 拒绝以 UTF-8 格式保存

PHP/MYSQL session - 打印当前用户名

php - 使用php将 session 值保存在数据库中

session - golang session 变量不起作用。我做错了什么?

php - 转换数据库中的 MySQL 字符集(也与 Mysqli 字符集相关)

java - 通过Java从MySQL数据库下载BLOB数据

php - 我什么时候应该使用准备好的语句?

php - Apache/PHP 多请求处理和调度?

javascript - 乔姆拉!强制我的 concat 加上 '+' 到 "%20"

php - %0d%0a 被添加到 <a> 标记中的 href 属性的 URL 后面