Как я могу использовать промежуточное ПО PSR7 в переполнении стека

Я установил следующие пакеты композитора:

"require": {
"beatswitch/lock": "0.2.0",
"league/event": "2.1.2",
"oscarotero/psr7-middlewares": "v3.16.1",
"pdepend/pdepend": "2.2.4",
"sebastian/phpcpd": "2.0.4",
"instaclick/php-code-sniffer": "1.4.2",
"phploc/phploc": "3.0.1",
"phpmd/phpmd": "2.4.3",
"phpunit/phpunit": "5.5.x-dev",
"phpunit/phpunit-selenium": "3.0.2",
"league/route": "3.x-dev",
"guzzlehttp/psr7": "1.3.0",
"relay/relay": "2.x-dev",
"monolog/monolog": "2.0.x-dev",
"aura/session": "3.x-dev"

}

и теперь я хочу «склеить» эти пакеты вместе с пакетами psr7-middlewares. К сожалению, я не смог найти никакой информации о том, как использовать каждую библиотеку из этих промежуточных программ вне диспетчера. Основные вещи, такие как Access Logging и Routing, уже работают без проблем.

Я интегрировал сеансы ауры, как показано ниже:

Middleware::AuraSession(),
->factory(new Aura\Session\SessionFactory) //(optional) Intance of Aura\Session\SessionFactory
->name('my-session-name'), //(optional) custom session name

function ($request, $response, $next) {
//Get the session instance
$session = AuraSession::getSession($request);

return $response;
}

Это определенно работает с интерфейсом сообщений Relayphp и Guzzle \ Http. Сброс переменной сеанса дает мне основные данные сеанса с пустыми значениями, потому что я ничего не установил.

К сожалению, я не смог найти легкую для понимания информацию о том, как я могу установить Сеанс внутри промежуточной системы. В конце я получил ответ и могу получить его тело и заголовки, но не больше.

Как я могу получить доступ к функции, установленной в массиве middlewares? Я также попытался просто использовать класс AuraSession и установить переменные над этим классом, но это не работает. Или я должен установить все сеансы, прежде чем отправлять промежуточное ПО вместе? Но как они тогда интегрируются в это?

0

Решение

Я упустил из виду, что я могу установить Sessions внутри анонимной функции, которую я должен реализовать в своем списке промежуточного программного обеспечения, как указано ранее (но не осознал этого), поэтому позвольте мне сказать, что я хочу создать Session, когда пользователь входит в систему, с помощью Aura Session и PSR7-Middlewares могут выглядеть следующим образом:

function ($request, $response, $next) {
//Get the session instance
$session = AuraSession::getSession($request);

$auth = new server\modules\authentication;

$auth->setUserSession($request, $session);

return $response;
}

И метод setUserSession может быть:

public function setUserSession ($request, $session) {
$segment = $session->getSegment(get_called_class());
if ($this->loggedIn && $segment->get('logged_in', false)) {
$segment->set('logged_in', true);
}
}
1

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

Других решений пока нет …

По вопросам рекламы [email protected]