Я установил следующие пакеты композитора:
"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 и установить переменные над этим классом, но это не работает. Или я должен установить все сеансы, прежде чем отправлять промежуточное ПО вместе? Но как они тогда интегрируются в это?
Я упустил из виду, что я могу установить 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);
}
}
Других решений пока нет …