与laravel和back分享会话信息

时间:2013-09-23 03:50:17

标签: php laravel

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

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

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

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

虽然Laravel使用这样的东西。

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

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

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

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

全局变量?

还有其他建议吗?

3 个答案:

答案 0 :(得分:3)

我建议您在这里使用Laravel的Auth - 类,听取auth.login事件并手动设置会话标记。

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

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

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

答案 1 :(得分:1)

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

projectFolder / oldMVC

projectFolder / Laravel

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

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

之后我们可以从非Laravel MVC访问Laravel中设置的会话和其他配置变量。

答案 2 :(得分:1)

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

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

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