PSR-7 скоро будет стандартизован (я считаю). Это заставило меня задуматься о посредниках, таких как Phly, StackPHP и ConnectJS.Где разместить новые объекты, созданные промежуточным программным обеспечением?
Способ ConnectJS заключается в том, что он изменяет объект запроса, когда промежуточное программное обеспечение должно что-то добавить. Например, cookie-session создает session
свойства на req
объекте:
app.use(session({
keys: ['key1', 'key2']
}))
app.use(function (req, res, next) {
var n = req.session.views || 0 // <-- req.session is managed by the session middleware
req.session.views = ++n
res.end(n + ' views')
})
С PSR-7, оба нашего запрос и ответ объекты (предполагается) неизменно, так как мы должны пройти вдоль дополнительных данных, таких как это? то есть где лучше всего будет хранить объект «сеанс» или «пользовательский» объект, созданный промежуточным программным обеспечением аутентификации?
Я не очень хорошо знаю middlewares и ConnectJs, но я думаю, что вы можете решить свою проблему непреложности, создав новый экземпляр запроса или ответа, вместо того, чтобы мутировать его и возвратить новый экземпляр. Возможно, это могло бы помочь: https://github.com/phly/conduit#next – marcosh
@marcosh. Правильно, но под каким свойством, определенным интерфейсом, вы сохранили бы такие данные? – mpen
Пока свойство, которое нужно добавить, не имеет аналога в HTTP-сообщении, я бы не использовал свойство, определенное интерфейсом, но я бы использовал новое заданное свойство, например $ request-> session – marcosh