Class/method/property metadata management in PHP

Installs: 5 839 603

Dependents: 55

Stars: 107

Watchers: 8

Forks: 35

Open Issues: 13

1.5.1 2014-07-12 07:13 UTC



This library provides some commonly needed base classes for managing metadata for classes, methods and properties. The metadata can come from many different sources (annotations, YAML/XML/PHP configuration files).

The metadata classes are used to abstract away that source and provide a common interface for all of them.


The library provides three classes that you can extend to add your application specific properties, and flags: ClassMetadata, MethodMetadata, and PropertyMetadata

After you have added, your properties in sub-classes, you also need to add DriverInterface implementations which know how to populate these classes from the different metadata sources.

Finally, you can use the MetadataFactory to retrieve the metadata:


use Metadata\MetadataFactory;
use Metadata\Driver\DriverChain;

$driver = new DriverChain(array(
    /** Annotation, YAML, XML, PHP, ... drivers */
$factory = new MetadataFactory($driver);
$metadata = $factory->getMetadataForClass('MyNamespace\MyObject');