thecodingmachine / yaco-service-provider
This package is a bridge between container-intop's service providers and YACO (the PSR-11 compliant container compiler).
1.0.x-dev
2016-04-11 14:49 UTC
Requires
- php: >=7.0
- container-interop/service-provider: ~0.2.0
- puli/discovery: ^1.0-beta9@beta
- thecodingmachine/yaco: ~0.4.0
Requires (Dev)
- phpunit/phpunit: ~5.0
- satooshi/php-coveralls: ~1.0
This package is auto-updated.
Last update: 2024-11-15 05:00:43 UTC
README
Bridge between container-interop's service providers and YACO
This package is a bridge between container-interop's service providers and YACO, the PSR-11 compliant container compiler.
Using this package, you can use Yaco to generate PSR-11 compliant containers that contain the services provided by container-interop's service providers.
Installation
composer require thecodingmachine/yaco-service-provider
Loading a service provider into Yaco
use TheCodingMachine\Yaco\Compiler; use TheCodingMachine\Yaco\ServiceProvider\ServiceProviderLoader; // Create your YACO compiler. $compiler = new Compiler(); // Create your service provider loader $serviceProviderLoader = new ServiceProviderLoader($compiler); // Load service providers into Yaco: $serviceProviderLoader->load(MyServiceProvider::class); $serviceProviderLoader->load(MyOtherServiceProvider::class); // Services are now available in Yaco, we just need to dump the container: $code = $compiler->compile('MyContainer'); file_put_contents(__DIR__.'/MyContainer.php', $code);
Autodiscovering service providers using Puli
If the service providers you are loading are publishing themselves on Puli, you can easily use Puli's discovery mechanism to load the services:
// The discoverAndLoad function takes a Puli discovery instance in parameter. // It will discover and load service providers automatically. $serviceProviderLoader->discoverAndLoad($discovery)