Laravel 4 - 创建自定义会话驱动程序

时间:2013-09-09 13:48:26

标签: php mysql session laravel laravel-4

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

我希望能够以某种方式使用Session :: extend函数,与Auth :: extend相同,但似乎并非如此。似乎在global.php文件运行之前已经创建了会话。

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

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

1 个答案:

答案 0 :(得分:1)

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

class CompanySessionHandler extends DatabaseSessionHandler {

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

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