私のLaravelアプリケーションからphpBB内のいくつかの関数にアクセスしようとしています。これは、メインサイトと自動ログインで登録が発生したときにユーザを追加するなどのアクションです。Laravelコードの競合でphpBBを読み込む
PhpBBは/public/forums
の下にインストールされており、私は.htaccess
を更新するように更新しました。私はそれにアクセスし、それをうまく使用することができます。
私は元々codeigniterのために構築されたヘルパーを持っていますが、laravelの世界に翻訳する必要があります。私は
use App\Helpers\phpBBHelper;
を使用して、それをロードし、アプリの下に置くことにより、ヘルパーとしてそれをロードしていると私は、私は、このコンストラクタを持っている私のヘルパーの上部には、このような
$ph = new phpBBHelper();
$ph->addPhpbb3User('dave','password','[email protected]');
としての機能にアクセス
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);
このラインでありますphpBBとLaravelの両方がコンポーザーを使用しているため、クラスをロードするときに競合が発生していたためです。それが本当であるかどうかはわかりません。
しかし、私が$user->session_begin();
と呼ぶとき、Laravelは確かにphpBBに影響しています。
laravelでセッション競合が発生しました。SESSION_DRIVERとcookieまたはmemcachedが.envになっています –