• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..28-Mar-2019-

src/H28-Mar-2019-1,136610

tests/H28-Mar-2019-904685

.scrutinizer.ymlH A D27-Mar-2019115 87

.travis.ymlH A D27-Mar-2019828 3424

CHANGELOG.mdH A D27-Mar-20196.9 KiB12181

CONTRIBUTING.mdH A D27-Mar-20191.8 KiB4528

LICENSEH A D27-Mar-20191 KiB2016

README.mdH A D27-Mar-20192.2 KiB5640

composer.jsonH A D27-Mar-2019902 3837

phpcs.xml.distH A D27-Mar-20193.8 KiB10182

phpunit.xml.distH A D27-Mar-2019635 2522

README.md

1Metadata is a library for class/method/property metadata management in PHP
2==========================================================================
3
4| [Master (2.x)][Master] | [1.x][1.x] |
5|:----------------:|:----------:|
6| [![Build status][Master image]][Master] | [![Build status][1.x image]][1.x] |
7| [![Coverage Status][Master coverage image]][Master coverage] | [![Coverage Status][1.x coverage image]][1.x coverage] |
8
9
10Overview
11--------
12
13This library provides some commonly needed base classes for managing metadata
14for classes, methods and properties. The metadata can come from many different
15sources (annotations, YAML/XML/PHP configuration files).
16
17The metadata classes are used to abstract away that source and provide a common
18interface for all of them.
19
20Usage
21-----
22
23The library provides three classes that you can extend to add your application
24specific properties, and flags: ``ClassMetadata``, ``MethodMetadata``, and
25``PropertyMetadata``
26
27After you have added, your properties in sub-classes, you also need to add
28``DriverInterface`` implementations which know how to populate these classes
29from the different metadata sources.
30
31Finally, you can use the ``MetadataFactory`` to retrieve the metadata::
32
33```php
34<?php
35
36use Metadata\MetadataFactory;
37use Metadata\Driver\DriverChain;
38
39$driver = new DriverChain(array(
40    /** Annotation, YAML, XML, PHP, ... drivers */
41));
42$factory = new MetadataFactory($driver);
43$metadata = $factory->getMetadataForClass('MyNamespace\MyObject');
44```
45
46  [Master image]: https://img.shields.io/travis/schmittjoh/metadata/master.svg?style=flat-square
47  [Master]: https://travis-ci.org/schmittjoh/metadata
48  [Master coverage image]: https://img.shields.io/scrutinizer/coverage/g/schmittjoh/metadata/master.svg?style=flat-square
49  [Master coverage]: https://scrutinizer-ci.com/g/schmittjoh/metadata/?branch=master
50
51  [1.x image]: https://img.shields.io/travis/schmittjoh/metadata/1.x.svg?style=flat-square
52  [1.x]: https://github.com/schmittjoh/metadata/tree/1.x
53  [1.x coverage image]: https://img.shields.io/scrutinizer/coverage/g/schmittjoh/metadata/1.x.svg?style=flat-square
54  [1.x coverage]: https://scrutinizer-ci.com/g/schmittjoh/metadata/?branch=1.x
55
56