首页 文章

与laravel和back分享会话信息

提问于
浏览
6

我们的网站 Build 在自定义的php mvc框架之上,我们希望将每个流程(例如:注册)慢慢转换为Laravel .

所以从本质上讲,使用laravel的现有代码和新代码必须共存 . 但是我们遇到了障碍,由于其惯例,laravel设置的会话信息不能用于其他mvc,反之亦然 .

例如,自定义mvc使用以下内容 .

$_SESSION['AUTH']='TRUE';

虽然Laravel使用这样的东西 .

Session::put('AUTH', 'TRUE');

我们尝试通过laravel类设置$ _SESSION ['AUTH'] ='TRUE' . 但是当控制权传递给旧的MVC时,我们无法访问它 .

我知道它很复杂,我应该等待将整个代码库转换为Laravel,并完成它 . 但我们是一家资源极少的小公司 . 所以我们没有足够的奢侈来停止功能开发并花时间使用Laravel Exclusively重写 .

所以我的问题是这个 . 如果通过任何机制,我们能够实现这一目标吗?

全局变量?

还有其他建议吗?

3 回答

  • 1

    我建议你在这里使用Laravel的 Auth -Class,听听 auth.login 事件并手动设置你的会话标志 .

    Event::listen('auth.login', function($user)
    {
        $_SESSION['AUTH']='TRUE';
    });
    

    这是最简单的方法,您只需在完全迁移到Laravel时删除事件侦听器 .

    我知道这是一个快速而又脏的东西,但是在完全迁移之后你不想再使用 $_SESSION 来管理你的身份验证;)所以我认为这应该是你的新旧代码库之间非常好的桥梁 .

  • 2

    例如,如果您有以下文件夹结构

    projectFolder / oldMVC

    projectFolder / Laravel

    在oldMvC / main.php中我们包括以下内容

    require '../Laravel/bootstrap/autoload.php';
    require_once '../Laravel/bootstrap/start.php';
    

    之后,我们能够从非Laravel MVC访问Laravel中设置的会话和其他配置变量 .

  • 1

    实际上只需要 bootstrap/autoload.phpbootstrap/start.php ,您将无法访问真正的Laravel会话 . 甚至不再打电话给 Application::boot() .

    我创建了一个Gist,它可以共享Laravel的会话并检查来自外部项目的身份验证:

    https://gist.github.com/frzsombor/ddd0e11f93885060ef35

相关问题