This package integrates doctrine/annotations (the Doctrine annotation library) in any container-interop/service-provider compatible framework/container.
composer require thecodingmachine/doctrine-annotations-universal-module
Once installed, you need to register the TheCodingMachine\DoctrineAnnotationsServiceProvider
into your container.
If your container supports thecodingmachine/discovery integration, you have nothing to do. Otherwise, refer to your framework or container's documentation to learn how to register service providers.
This service provider will provide a default Doctrine AnnotationReader implementation. It will use a Doctrine cache if the cache is available.
Note: you can get a service provider providing a working Doctrine cache using the following packages:
composer require thecodingmachine/stash-universal-module
composer require thecodingmachine/psr-6-doctrine-bridge-universal-module
This will install Stash and its related service-provider and a PSR-6 to Doctrine cache bridge.
use Doctrine\Common\Annotations\AnnotationReader;
$annotationReader = $container->get(AnnotationReader::class);
This service provider will lookup for a Doctrine\Common\Cache\Cache
service. If available, this cache system will be used to cache annotations.
Annotations will be loaded using the autoloader from Composer.
This service provider expects the following configuration / services to be available:
Name | Compulsory | Description |
---|---|---|
Doctrine\Common\Cache\Cache |
no | A Doctrine cache. |
thecodingmachine.stash-universal-module.debug |
no | Whether debug mode is enabled or not. Defaults to true . In debug mode, cache is invalidated with a PHP file changes. |
This service provider provides the following services:
Service name | Description |
---|---|
Doctrine\Common\Annotations\Reader |
A Doctrine annotation reader. |
This service provider does not extend any service.