{
    "href": "/post/2026/04/08/request-interop-standard-now-stable/",
    "relId": "2026/04/08/request-interop-standard-now-stable",
    "title": "Request-Interop Standard Now Stable",
    "author": "pmjones",
    "tags": [
        {
            "href": "/tag/programming/",
            "relId": "programming",
            "title": "Programming",
            "author": null,
            "created": null,
            "updated": [],
            "markup": "markdown"
        },
        {
            "href": "/tag/php/",
            "relId": "php",
            "title": "PHP",
            "author": null,
            "created": null,
            "updated": [],
            "markup": "markdown"
        },
        {
            "href": "/tag/interop/",
            "relId": "interop",
            "title": "Interop",
            "author": null,
            "created": "2025-02-03 20:11:59 UTC",
            "updated": [
                "2025-02-03 20:11:59 UTC"
            ],
            "markup": "markdown"
        }
    ],
    "created": "2026-04-08 13:03:47 UTC",
    "updated": [
        "2026-04-08 13:03:47 UTC"
    ],
    "markup": "markdown",
    "html": "<p>I am pleased to announce that the <a href=\"https://github.com/request-interop/interface\">Request-Interop</a> standard interface package is now stable for production use.</p>\n<p><a href=\"https://github.com/request-interop/interface\">Request-Interop</a> provides an interoperable package of standard interfaces for encapsulating readable server-side request values in PHP 8.4 or later, in order to reduce the global mutable state problems that exist with PHP superglobals. It reflects, refines, and reconciles the common practices identified within <a href=\"https://github.com/request-interop/interface/blob/1.x/README-RESEARCH.md\">several pre-existing projects</a> to define these interfaces:</p>\n<ul>\n<li>\n<a href=\"https://github.com/request-interop/interface#requeststruct\"><em>RequestStruct</em></a> to represent the incoming request.</li>\n<li>\n<a href=\"https://github.com/request-interop/interface#requeststructfactory\"><em>RequestStructFactory</em></a> to create <a href=\"https://github.com/request-interop/interface#requeststruct\"><em>RequestStruct</em></a> instances.</li>\n</ul>\n<p>Request-Interop also defines a marker interface, <a href=\"https://github.com/request-interop/interface#requestthrowable\"><em>RequestThrowable</em></a>, for marking an <em>Exception</em> as request-related.</p>\n<p>Finally, Request-Interop defines a <a href=\"https://github.com/request-interop/interface#requesttypealiases\"><em>RequestTypeAliases</em></a> interface with PHPStan types to aid static analysis.</p>\n<p>The <a href=\"https://github.com/request-interop/impl/tree/1.x/src\">reference implementations</a> demonstrate how the interfaces can be used.</p>\n<p>If you have to deal with server-side requests and are interested an interoperable set of interfaces, please offer your comments and criticism as <a href=\"https://github.com/request-interop/interface/issues\">issues or PRs out at Github</a>.</p>\n"
}
