我们的网站 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 回答
我建议你在这里使用Laravel的
Auth
-Class,听听auth.login
事件并手动设置你的会话标志 .这是最简单的方法,您只需在完全迁移到Laravel时删除事件侦听器 .
我知道这是一个快速而又脏的东西,但是在完全迁移之后你不想再使用
$_SESSION
来管理你的身份验证;)所以我认为这应该是你的新旧代码库之间非常好的桥梁 .例如,如果您有以下文件夹结构
projectFolder / oldMVC
projectFolder / Laravel
在oldMvC / main.php中我们包括以下内容
之后,我们能够从非Laravel MVC访问Laravel中设置的会话和其他配置变量 .
实际上只需要
bootstrap/autoload.php
和bootstrap/start.php
,您将无法访问真正的Laravel会话 . 甚至不再打电话给Application::boot()
.我创建了一个Gist,它可以共享Laravel的会话并检查来自外部项目的身份验证:
https://gist.github.com/frzsombor/ddd0e11f93885060ef35