在Laravel中加载phpBB代码冲突

前端之家收集整理的这篇文章主要介绍了在Laravel中加载phpBB代码冲突前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图从我的Laravel应用程序访问PHPBB中的一些函数,这是为了在我的主站点上发生注册添加用户自动登录等操作.

PHPBB安装在/ public / forums下,我更新了.htaccess以允许它.我能够访问并使用它就好了.

我有一个最初为codeigniter构建的帮助器,但应该转换到laravel世界.我将它作为帮助程序加载,将其置于应用程序下,使用它加载它

use App\Helpers\PHPBBHelper;

我这样访问这些功能

$ph = new PHPBBHelper();
   $ph->addPHPbb3User('dave','password','dave@dave.com');

在我的助手的顶部,我有这个构造函数

public function __construct() {

    // Set the variables scope
    global $PHPbb_root_path,$PHPEx,$cache,$user,$db,$config,$template,$table_prefix;

    define('IN_PHPBB',TRUE);
    define('FORUM_ROOT_PATH','forum/');

    $PHPbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : FORUM_ROOT_PATH;
    $PHPEx = substr(strrchr(__FILE__,'.'),1);
    // Include needed files
    include($PHPbb_root_path . 'common.' . $PHPEx);

    // Initialize PHPBB user session
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    // Save user data into $_user variable
    $this->_user = $user;   
}

当我执行代码时,我收到服务器500错误

PHP Fatal error:  Call to a member function getScriptName() on null in
/home/ubuntu/workspace/public/forum/PHPbb/session.PHP on line 50

这是这条线

$script_name = $request->escape($symfony_request->getScriptName(),true);

我发现了一个关于堆栈溢出的帖子,它正好引用了我的问题,但该问题的解决方案从未发布过

Laravel conflicting

在该线程中,有人建议因为PHPBB和Laravel都使用composer,所以在加载类时会导致冲突.我不确定这是不是真的.

但是当我调用$user-> session_begin();时,Laravel肯定会影响PHPBB.

我建议不要重新发明轮子并使用已编码的扩展名,如 lara-auth-bridge.注册只是在右表中插入正确的行,特别是不熟悉PHPBB3,但是你可以看到新帐户后数据库中的更改创建.

编辑:您可以在try {} catch {}块中包围有问题的代码,以防错误对于注册本身而言不是致命的,因此服务器不会以500结尾.

猜你在找的Laravel相关文章