jms / metadata
Class/method/property metadata management in PHP
Installs: 124 403 412
Dependents: 106
Suggesters: 0
Security: 0
Stars: 1 802
Watchers: 12
Forks: 71
Open Issues: 7
Requires
- php: ^7.2|^8.0
Requires (Dev)
- doctrine/cache: ^1.0
- doctrine/coding-standard: ^8.0
- mikey179/vfsstream: ^1.6.7
- phpunit/phpunit: ^8.5|^9.0
- psr/container: ^1.0|^2.0
- symfony/cache: ^3.1|^4.0|^5.0
- symfony/dependency-injection: ^3.1|^4.0|^5.0
- dev-master / 2.x-dev
- 2.8.0
- 2.7.0
- 2.6.1
- 2.6.0
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 2.0.0-RC1
- 2.0.0-beta1
- 1.x-dev
- 1.7.0
- 1.6.0
- 1.5.1
- 1.5.0
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.0-RC
- 1.1.1
- dev-traceable-file-locator
- dev-goetas-patch-1
- dev-no-cache
- dev-psr-container
- dev-jlekowski_master-cache
- dev-revert-recursive-metadata
- dev-mit-license
This package is auto-updated.
Last update: 2024-12-04 11:05:22 UTC
README
Overview
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.
Usage
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::
<?php 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');