我正在尝试将Laravel应用程序与Xenforo集成。最简单的方法似乎是同步用户的创建,登录,注销事件。
因此,例如,每当用户从Xenforo注销时,我都想触发Laravel的Auth::logout
。
Xenforo安装在Laravels public/forum
文件夹中。
Xenforo的退出操作在public/forum/src/XF/Pub/Controller/Logout.php
执行:
namespace XF\Pub\Controller;
use XF\Mvc\ParameterBag;
use XF\Mvc\Reply\AbstractReply;
use Illuminate\Support\Facades\Auth; // ===========> WONT WORK
class Logout extends AbstractController
{
public function actionIndex()
{
$this->assertValidCsrfToken($this->filter('t', 'str'));
/** @var \XF\ControllerPlugin\Login $loginPlugin */
$loginPlugin = $this->plugin('XF:Login');
$loginPlugin->logoutVisitor();
Auth::logout(); // =========================> WONT WORK
return $this->redirect($this->buildLink('index'));
}
(...)
}
我想因为它的自动加载并不知道这个类,因此Xenforo不知道这个类。
有没有办法让Xenforo拥有自己的自动加载器,还可以考虑使用Laravels自动加载器?
如果不能如何将此类添加到Xenforos自动加载器中?
提前致谢。
答案 0 :(得分:0)
即使你可以,它也可能会很混乱并且可能会引入你不会考虑的错误。最干净的方法是在Laravel中设置一个API端点,您可以在Xenforo注销控制器中发出请求,或者控制器调用注意给定用户的工匠命令。这样,您就可以防止必须从另一个框架中引导框架,并保持两者完全分离。
答案 1 :(得分:-1)
您可以查看有关如何在其中加入其他自动加载器的official composer docs。
修改强>
我要改写我的回答;您不应该尝试将Laravel加载到Xenforo中,因为可能存在第三方库版本问题,重复的帮助方法(如果Xenforo有任何问题),可能会出现各种其他问题,最好将Laravel用作endpoint
并且让REST
调用登录,注销等。正是@samrap提到的。
我的问题是你为什么要使用Xenforo,是否必须使用它来实现你想做的任何事情?