PSR-7: HTTP message interfaces

29 views
Skip to first unread message

Emad Al-mahdi

unread,
Aug 12, 2025, 6:27:22 AMAug 12
to PHP Framework Interoperability Group
Hello,

I wonder why the method [withParsedBody] is not type hinted in the interface [ServerRequestInterface]. Se below:

    /**
     * Return an instance with the specified body parameters.
     *
     * These MAY be injected during instantiation.
     *
     * If the request Content-Type is either application/x-www-form-urlencoded
     * or multipart/form-data, and the request method is POST, use this method
     * ONLY to inject the contents of $_POST.
     *
     * The data IS NOT REQUIRED to come from $_POST, but MUST be the results of
     * deserializing the request body content. Deserialization/parsing returns
     * structured data, and, as such, this method ONLY accepts arrays or objects,
     * or a null value if nothing was available to parse.
     *
     * As an example, if content negotiation determines that the request data
     * is a JSON payload, this method could be used to create a request
     * instance with the deserialized parameters.
     *
     * This method MUST be implemented in such a way as to retain the
     * immutability of the message, and MUST return an instance that has the
     * updated body parameters.
     *
     * @param null|array|object $data The deserialized body data. This will
     *     typically be in an array or object.
     * @return static
     * @throws \InvalidArgumentException if an unsupported argument type is
     *     provided.
     */
    public function withParsedBody($data): ServerRequestInterface;

Korvin Szanto

unread,
Aug 13, 2025, 1:46:19 PMAug 13
to php...@googlegroups.com
Version 2.0 of the library does indeed include type hints here: https://github.com/php-fig/http-message/blob/master/src/ServerRequestInterface.php#L197 

The reason it wasn't originally type hinted was because PSR-7 was approved 4 full years before return types were available in PHP.

Best,
Korvin

--
You received this message because you are subscribed to the Google Groups "PHP Framework Interoperability Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to php-fig+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/php-fig/2ea4698d-4813-4a57-8aba-81e1dce579d0n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages