https://github.com/container-interop/service-provider
[EXPERIMENTAL] Promoting container/framework interoperability through standard service providers
https://github.com/container-interop/service-provider
dependency-injection php psr service-provider
Last synced: 3 months ago
JSON representation
[EXPERIMENTAL] Promoting container/framework interoperability through standard service providers
- Host: GitHub
- URL: https://github.com/container-interop/service-provider
- Owner: container-interop
- Created: 2016-02-03T22:27:25.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2024-01-14T09:18:37.000Z (over 2 years ago)
- Last Synced: 2025-12-26T16:51:41.465Z (4 months ago)
- Topics: dependency-injection, php, psr, service-provider
- Language: PHP
- Homepage:
- Size: 110 KB
- Stars: 71
- Watchers: 20
- Forks: 10
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Standard Service Providers
This project attempts to define a common standard for service providers, aka "bundles" or "modules" in various frameworks.
Service providers are classes that provide service definitions to a [PSR-11](https://www.php-fig.org/psr/psr-11/) container.
The PSR depends on the PSR-11 [Container Interface](https://www.php-fig.org/psr/psr-11/#31-psrcontainercontainerinterface). Service providers operate on PSR-11 compatible containers.
#### ⚠️ Work in progress
> the project is currently experimental and is being tried in frameworks, containers and modules until considered viable. Until a 1.0.0 release, the code in this repository is not stable. Expect breaking changes between versions such as `0.1.x` and `0.2.0`.
#### 👉 Refer to the [current PSR draft](./PSR-XX-provider.md) for the PSR proposal itself.
#### 🧐 Refer to the [PSR meta document](./PSR-XX-provider-meta.md) for the history and reasoning behind this proposal.
#### 💬 Join us to review [open issues](/container-interop/service-provider/issues) or [participate in ongoing discussions](/container-interop/service-provider/discussions).
## Compatible projects
### Projects consuming `v0.4` *service providers*
- [Laravel service provider bridge](https://github.com/thecodingmachine/laravel-universal-service-provider/): Use container-interop's service-providers into any [Laravel](http://laravel.com/) application.
- [Simplex](https://github.com/mnapoli/simplex): A [Pimple 3](https://github.com/silexphp/Pimple) fork with full [container-interop](https://github.com/container-interop/container-interop) compliance and cross-framework service-provider support.
- [Service provider bridge bundle](https://github.com/thecodingmachine/service-provider-bridge-bundle): Use container-interop's service-providers into a Symfony container.
- [Yaco](https://github.com/thecodingmachine/yaco): A compiler that generates container-interop compliant containers. Yaco can consume service-providers.
### Packages providing `v0.4` *service providers*
- [DBAL Module](https://github.com/thecodingmachine/dbal-universal-module): A module integrating [Doctrine DBAL](http://www.doctrine-project.org/projects/dbal.html) in an application using a service provider.
- [Doctrine Annotations Module](https://github.com/thecodingmachine/doctrine-annotations-universal-module): A service provider for Doctrine's annotation reader.
- [Glide Module](https://github.com/mnapoli/glide-module): A module integrating Glide in an application using a service provider.
- [PSR-6 to Doctrine cache bridge module](https://github.com/thecodingmachine/psr-6-doctrine-bridge-universal-module): A service provider providing a Doctrine cache provider wrapping a PSR-6 cache pool.
- [Slim-framework Module](https://github.com/thecodingmachine/slim-service-provider): A module integrating Slim framework v3 using a service provider.
- [Stash Module](https://github.com/thecodingmachine/stash-universal-module): A service provider for the Stash PSR-6 caching library.
- [Stratigility Module](https://github.com/thecodingmachine/stratigility-harmony): A service provider for the Stratigility PSR-7 middleware.
- [Twig Module](https://github.com/thecodingmachine/twig-universal-module): A service provider for the Twig templating library.
- [Whoops PSR-7 Middleware Module](https://github.com/thecodingmachine/whoops-middleware-universal-module): a service provider for the [Whoops](https://filp.github.io/whoops/) [PSR-7 middleware](https://github.com/franzliedke/whoops-middleware).