【问题标题】:share session info with laravel and back与 laravel 共享会话信息并返回
【发布时间】:2013-09-27 21:26:56
【问题描述】:

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

所以本质上,现有代码和使用 laravel 的新代码必须共存。但是我们遇到了一个问题,laravel 设置的会话信息对其他 mvc 不可用,反之亦然,因为它们的约定。

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

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

而 Laravel 使用类似的东西。

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

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

我知道它很复杂,我应该等待将整个代码库转换为 Laravel,然后完成它。但我们是一家资源最少的小公司。所以我们没有奢望停止功能开发并花时间专门使用 Laravel 重写。

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

全局变量?

还有其他建议吗?

【问题讨论】:

  • 您好,您解决了这个问题吗?我也遇到了同样的问题。我很想听听您采用哪种方法。提前致谢。
  • 张贴在下面。希望对您有所帮助。

标签: php laravel


【解决方案1】:

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

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

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

我知道这是一件又快又脏的事情,但是在完全迁移之后,您不想再使用$_SESSION 来管理您的身份验证;)所以我认为这应该是您新的和旧代码库。

【讨论】:

  • 嗨@Jan P. 我如何使用您的代码来集成 cakePHP 2.5 和 Laravel 5.1?你能提供更多细节吗?或步骤?假设 cakephp 将迁移到 laravel,用户可以从 cakephp 登录并访问 laravel 应用程序。
【解决方案2】:

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

projectFolder/oldMVC

项目文件夹/Laravel

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

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

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 拜托,我如何使用这个要点将 cakePHP 2.5 应用程序集成到 Laravel 5.1?您的代码将放在哪里?
    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 2015-08-22
    • 2015-12-08
    • 2014-01-24
    • 2018-05-18
    • 1970-01-01
    • 2011-02-14
    • 2015-08-28
    相关资源
    最近更新 更多