Интеграция CometChat с laravel 5.1

Мой вопрос касается интеграции CometChat с laravel 5.1.

Я пытаюсь дать доступ к Laravel в файле интеграции.php Cometchat. Я хочу предоставить доступ к классу Session, чтобы получить доступ к информации о сеансе из базы данных (по умолчанию Cometchat использует файловые сеансы).
На данный момент я переключил Laravel для использования файловых сессий.

Итак, как я могу получить доступ к сеансам из Laravel, чтобы я мог получить к нему доступ в файлеgration.php?

3

Решение

Хорошо, я думаю, что я решил это. Следующий код дает мне доступ к существующему приложению Laravel, и я могу получить доступ к Session и даже Sentinel.

Я также добавил включение, которое указывает на vendor / autoload.php, которое теперь дает мне доступ к QueryBuilder и другим системам.

В верхней части интеграции.php у меня есть:

// integration.php includes the laravel files to give access, it just
// didn't use it fully

$app->make('Illuminate\Contracts\Http\Kernel')->handle(Illuminate\Http\Request::capture());

$id = $app['encrypter']->decrypt($_COOKIE[$app['config']['session.cookie']]);
$app['session']->driver()->setId($id);
$app['session']->driver()->start();

Это возвращает текущий запущенный Laravel, и тогда я могу сделать что-то вроде $app['session']->get('dataname')

Хотя с добавленным vendor / autoload.php я теперь могу также получить доступ DB::table или же Sentinel::getUser(), так далее

1

Другие решения

Пожалуйста, добавьте следующую строку после include_once( dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'bootstrap'.DIRECTORY_SEPARATOR.'app.php'); линия.

include_once( dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'Http'.DIRECTORY_SEPARATOR.'Controllers'.DIRECTORY_SEPARATOR.'Auth'.DIRECTORY_SEPARATOR.'app.php');

Замените функцию getUserID () на следующую в файлеgration.php, или вы можете загрузить пакет CometChat для Laravel 5 из http://my.cometchat.com

function getUserID() {
$userid = 0;
if (!empty($_SESSION['basedata']) && $_SESSION['basedata'] != 'null') {
$_REQUEST['basedata'] = $_SESSION['basedata'];
}

if (!empty($_REQUEST['basedata'])) {
if (function_exists('mcrypt_encrypt') && defined('ENCRYPT_USERID') && ENCRYPT_USERID == '1') {
$key = "";
if( defined('KEY_A') && defined('KEY_B') && defined('KEY_C') ){
$key = KEY_A.KEY_B.KEY_C;
}
$uid = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode(rawurldecode($_REQUEST['basedata'])), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
if (intval($uid) > 0) {
$userid = $uid;
}
} else {
$userid = $_REQUEST['basedata'];
}
}
if (!empty($_COOKIE['laravel_session'])) {
$app = app();
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$id = $app['encrypter']->decrypt($_COOKIE[$app['config']['session.cookie']]);
$app['session']->driver()->setId($id);
$app['session']->driver()->start();
if($app['auth']->user()!= NULL){
$userid = $app['auth']->user()->id;
}
}
$userid = intval($userid);
return $userid;
}
0