{
    "href": "/post/2026/01/03/env-interop-now-open-for-public-review/",
    "relId": "2026/01/03/env-interop-now-open-for-public-review",
    "title": "Env-Interop Now Open For Public Review",
    "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-01-03 16:54:05 UTC",
    "updated": [
        "2026-01-03 16:54:05 UTC",
        "2026-01-03 16:54:37 UTC",
        "2026-01-03 16:55:21 UTC"
    ],
    "markup": "markdown",
    "html": "<p>After a brief round of private review, the <a href=\"https://github.com/env-interop/interface\">Env-Interop</a> standard interface package is now open for public review.</p>\n<p><a href=\"https://github.com/env-interop/interface\">Env-Interop</a> provides interoperable interfaces to load and parse environment\nfiles, and encapsulate environment variables, in PHP 8.4 or later. It reflects,\nrefines, and reconciles the common practices identified within\n<a href=\"https://github.com/env-interop/interface/blob/1.x/README-RESEARCH.md\">several pre-existing projects</a> to define these interfaces:</p>\n<ul>\n<li>\n<p><a href=\"https://github.com/env-interop/interface#envloaderservice\"><em>EnvLoaderService</em></a> affords loading environment variables parsed from an environment file into <code>$_ENV</code> (and possibly elsewhere).</p>\n</li>\n<li>\n<p><a href=\"https://github.com/env-interop/interface#envparserservice\"><em>EnvParserService</em></a> affords parsing a string for environment variables.</p>\n</li>\n<li>\n<p><a href=\"https://github.com/env-interop/interface#envsetterservice\"><em>EnvSetterService</em></a> affords adding or replacing an environment variable in <code>$_ENV</code> (and possibly elsewhere).</p>\n</li>\n<li>\n<p><a href=\"https://github.com/env-interop/interface#envgetter\"><em>EnvGetter</em></a> affords getting environment variable values.</p>\n</li>\n<li>\n<p><a href=\"https://github.com/env-interop/interface#envthrowable\"><em>EnvThrowable</em></a> interface extends <a href=\"https://php.net/Throwable\"><em>Throwable</em></a> to mark an <a href=\"https://php.net/Exception\"><em>Exception</em></a> as environment-related.</p>\n</li>\n<li>\n<p><a href=\"https://github.com/env-interop/interface#envtypealiases\"><em>EnvTypeAliases</em></a> provides PHPStan type aliases to aid static analysis.</p>\n</li>\n</ul>\n<p>The <a href=\"https://github.com/env-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 environment variables and are interested an interoperable set of interfaces, please offer your comments and criticism as <a href=\"https://github.com/env-interop/interface/issues\">issues or PRs out at Github</a>.</p>\n"
}
