skalpa / silex-doctrine-annotations-provider
Doctrine annotations service provider for Pimple 3.x / Silex 2.x
Installs: 14
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/skalpa/silex-doctrine-annotations-provider
Requires
- php: >=5.6
- doctrine/annotations: ^1.4
- doctrine/cache: ^1.7
- pimple/pimple: ^3.0
Requires (Dev)
- phpunit/phpunit: ^5.4
This package is not auto-updated.
Last update: 2025-10-26 02:42:27 UTC
README
Doctrine Annotations Service Provider for Silex 2.x / Pimple 3.x
Lets you to use the Doctrine annotations reader in your Silex/Pimple application.
Installation
Install the service provider using composer:
composer require skalpa/silex-doctrine-annotations-provider
Registration
$app->register(new \Skalpa\Silex\Doctrine\AnnotationsServiceProvider()); $fooAnnotations = $app['annotations']->getClassAnnotations(new \ReflectionClass('Foobar\FooClass'));
Configuration parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
annotations.use_simple_reader |
bool |
false |
Whether to use the Doctrine AnnotationReader or SimpleAnnotationReader class |
annotations.register_autoloader |
bool |
true |
Whether to autoload annotations using the PHP autoloader |
annotations.cache |
string|Cache |
ArrayCache |
Doctrine\Common\Cache\Cache instance or name of a service that implements Doctrine\Common\Cache\Cache |
annotations.debug |
bool |
$app['debug'] |
Whether the cached reader should invalidate the cache files when the PHP class with annotations changed |
annotations.ignored_names |
string[] |
[] |
List of names that should be ignored by the annotations reader (Note: this is not supported by the SimpleAnnotationReader) |
Configuring the annotations cache
By default the cache used by the annotations reader is an ArrayCache,
which is probably not something you'll want to use on a production server.
If you already use a Doctrine Cache service provider and want to use an
already registered cache service, set annotations.cache to the name
of the service:
// The DoctrineCacheServiceProvider will register a service named "cache" $app->register(new DoctrineCacheServiceProvider()); // Cache annotations using the "cache" service $app->register(new AnnotationsServiceProvider(), [ 'annotations.cache' => 'cache', ]);
Alternatively, you can override the annotations.cache service and
provide your own cache provider:
$app->register(new AnnotationsServiceProvider(), [ 'annotations.cache' => function () { $cache = new \Doctrine\Common\Cache\PhpFileCache(__DIR__.'/cache); $cache->setNamespace('annotations'); return $cache; }, ]);