ashleydawson/class-meta-bundle

Symfony bundle to add arbitrary metadata to classes and their constants by annotation

Installs: 3 476

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 1

Open Issues: 0

Type:symfony-bundle

6.0.0 2019-07-04 08:50 UTC

This package is auto-updated.

Last update: 2020-08-04 11:27:40 UTC


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.