Symfony bundle for my Class Meta library. This allows you to attach arbitrary
metadata to classes and their constants via annotation., (*1)
Installation
To install via composer, use the following command:, (*2)
$ composer require ashleydawson/class-meta-bundle
And then add the bundle to the AppKernel#registerBundles()
method:, (*3)
$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:, (*4)
# 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., (*5)
Note: To disable the cache, simply pass the id of a Doctrine\Common\Cache\VoidCache
service., (*6)
Basic Usage
To use the meta cache manager service in a controller, simply do:, (*7)
public function indexAction()
{
$meta = $this->get('ashleydawson.class_meta')->getClassConstantsMeta('AppBundle\Enum\MyEnum');
dump($meta);
}
For more documentation, please see the full library readme., (*8)