You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 30, 2020. It is now read-only.
I was not able to find an open or closed issue matching what I'm seeing.
This is not a question. (Questions should be asked on chat (Signup here) or our forums.)
Adding a Header not implementing MultipleHeaderInterface via addHeaderLine, will add the Header multiple times. I'd expect it to be/stay unique.
Background: I'm trying to overwrite an already (multiple times) set ContentType Header. Because the Header is set twice via addHeaderLine(), it is present multiple times. But via Headers->get('Content-Type') i only get the first instead of all Content-Type headers. Of cause: because it's not implementing MultipleHeaderInterface. :/
In general i'd expect addHeader() and addHeaderLine() to behave the same way. Or am I wrong? ... Of cause Instanciating the Header for the multiple-check would destrory the "lazy-loading" argument in the docs. :/
If i'm wrong, all ZF-internal Header modifications should use addHeader() instead of addHeaderLine() to prevent this behaviour. In this particular Case Zend\View\Strategy\JsonStrategy adds a Content-Type Header via addHeaderLine() and therefore doesn't re-use/overwrite an already set ContentType Header. May be, this is a bug in zend-view, too.
I'd prefer to implement the "multiple-check" into addHeaderLine().
I'd like to contribute some code but i'm nut sure, what the best/right solution is. ... any thoughts/suggestion?
Code to reproduce the issue
$headers = newHeaders();
$headers->addHeader(newContentType(null, 'text/plain')); // i.e. in Controller$headers->addHeaderLine('Content-Type', 'text/javascript'); // i.e. in JsonStrategy:134echo$headers->count().PHP_EOL;
echo$headers->get('Content-Type)->getMediaType();
Expected results
1
text/javascript
Actual results
2
text/plain
The text was updated successfully, but these errors were encountered:
Adding a Header not implementing
MultipleHeaderInterface
viaaddHeaderLine
, will add the Header multiple times. I'd expect it to be/stay unique.Background: I'm trying to overwrite an already (multiple times) set ContentType Header. Because the Header is set twice via
addHeaderLine()
, it is present multiple times. But viaHeaders->get('Content-Type')
i only get the first instead of all Content-Type headers. Of cause: because it's not implementing MultipleHeaderInterface. :/In general i'd expect
addHeader()
andaddHeaderLine()
to behave the same way. Or am I wrong? ... Of cause Instanciating the Header for the multiple-check would destrory the "lazy-loading" argument in the docs. :/If i'm wrong, all ZF-internal Header modifications should use
addHeader()
instead ofaddHeaderLine()
to prevent this behaviour. In this particular CaseZend\View\Strategy\JsonStrategy
adds a Content-Type Header viaaddHeaderLine()
and therefore doesn't re-use/overwrite an already set ContentType Header. May be, this is a bug in zend-view, too.I'd prefer to implement the "multiple-check" into
addHeaderLine()
.I'd like to contribute some code but i'm nut sure, what the best/right solution is. ... any thoughts/suggestion?
Code to reproduce the issue
Expected results
Actual results
The text was updated successfully, but these errors were encountered: