{"id":16673281,"url":"https://github.com/shadowhand/injector-interop","last_synced_at":"2026-04-20T16:04:16.847Z","repository":{"id":138464117,"uuid":"48298796","full_name":"shadowhand/injector-interop","owner":"shadowhand","description":"Dependency injector configuration interoperability","archived":false,"fork":false,"pushed_at":"2015-12-20T18:45:44.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-09T00:34:42.658Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shadowhand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-19T22:07:37.000Z","updated_at":"2015-12-20T18:44:39.000Z","dependencies_parsed_at":"2023-03-15T20:00:37.467Z","dependency_job_id":null,"html_url":"https://github.com/shadowhand/injector-interop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shadowhand/injector-interop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowhand%2Finjector-interop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowhand%2Finjector-interop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowhand%2Finjector-interop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowhand%2Finjector-interop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shadowhand","download_url":"https://codeload.github.com/shadowhand/injector-interop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadowhand%2Finjector-interop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32054611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T12:25:33.760Z","updated_at":"2026-04-20T16:04:16.823Z","avatar_url":"https://github.com/shadowhand.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Injector Configuration Interoperability\n\n*injector-interop* tries to identify and standardize features used by *dependency injector configuration* to achieve\ninteroperability. It is an alternative to [definition-interop][definition-interop].\n\n[definition-interop]: https://github.com/container-interop/definition-interop\n\nThrough discussions and trials, we try to create a standard, made of common interfaces but also recommendations.\n\nIf PHP projects that provide injector implementations begin to adopt these common standards, then PHP applications\nand projects that use injector configuration can depend on the common interfaces instead of specific implementations.\nThis facilitates a high-level of interoperability and flexibility that allows users to use *any* injector implementation\nto configure packages.\n\nThe work done in this project is not officially endorsed by the [PHP-FIG](http://www.php-fig.org/).\nWe adhere to the spirit and ideals of PHP-FIG, and hope this project will pave the way for one or more future PSRs.\n\n## An Example\n\nWith [PSR-7][psr-7] there are many implementations of HTTP message interfaces, including [Zend Diactoros][diactoros].\nThe following could be used to tell an application to use this implementation of PSR-7:\n\n[psr-7]: http://www.php-fig.org/psr/psr-7/\n[diactoros]: https://github.com/zendframework/zend-diactoros\n\n```php\nuse Interop\\Injector\\InjectorInterface;\nuse Interop\\Injector\\ConfigurationInterface;\n\nclass DiactorosConfiguration implements ConfigurationInterface\n{\n    /**\n     * @inheritDoc\n     */\n    public function apply(InjectorInterface $injector)\n    {\n        $injector-\u003ealias(\n            'Psr\\Http\\Message\\ResponseInterface',\n            'Zend\\Diactoros\\Response'\n        );\n\n        $injector-\u003ealias(\n            'Psr\\Http\\Message\\RequestInterface',\n            'Zend\\Diactoros\\Request'\n        );\n\n        $injector-\u003ealias(\n            'Psr\\Http\\Message\\ServerRequestInterface',\n            'Zend\\Diactoros\\ServerRequest'\n        );\n\n        $injector-\u003edelegate(\n            'Zend\\Diactoros\\ServerRequest',\n            'Zend\\Diactoros\\ServerRequestFactory::fromGlobals'\n        );\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowhand%2Finjector-interop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadowhand%2Finjector-interop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadowhand%2Finjector-interop/lists"}