ashleydawson / class-meta-bundle
Symfony bundle to add arbitrary metadata to classes and their constants by annotation
Installs: 5 885
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=7.1
- ashleydawson/class-meta: ^2.0
- symfony/framework-bundle: ^3.0|^4.0
README
Symfony bundle for my Class Meta library. This allows you to attach arbitrary metadata to classes and their constants via annotation.
Installation
To install via composer, use the following command:
$ composer require ashleydawson/class-meta-bundle
And then add the bundle to the AppKernel#registerBundles()
method:
$bundles = [ // ... new AshleyDawson\ClassMetaBundle\AshleyDawsonClassMetaBundle(), ];
Configuration
Configuration allows you to set a cache provider. By default the cache provider is ArrayCache - so in production, I'd advise you change this to a more persistent cache strategy:
# app/config/config.yml services: my_class_meta_cache_provider: class: Doctrine\Common\Cache\FilesystemCache arguments: [ "%kernel.cache_dir%/ashleydawson/class_meta" ] ashley_dawson_class_meta: cache_provider_service_id: my_class_meta_cache_provider # Cache provider service ID (optional) cache_provider_ttl: 300 # 5 minutes TTL (optional)
Note: The cache is invalidated by file modify time, but if you want to also add a TTL (Time-to-live) to the cache it can be done via the cache_provider_ttl
parameter.
Note: To disable the cache, simply pass the id of a Doctrine\Common\Cache\VoidCache
service.
Basic Usage
To use the meta cache manager service in a controller, simply do:
public function indexAction() { $meta = $this->get('ashleydawson.class_meta')->getClassConstantsMeta('AppBundle\Enum\MyEnum'); dump($meta); }
For more documentation, please see the full library readme.