PHP TypeLang Help

Metadata Readers

Readers are responsible for reading and appending metadata from various sources. As is clear from the logic, all data passing through the reader chain is mutable.

In most cases, readers are implemented through delegation, so you can configure priorities for which data source is most important.

// Top priority $reader = new ImportantMetadataReader( // Uses a delegate to supplement meta delegate: new SecondaryMetadataReader( // Uses a delegate to supplement meta delegate: new OptionalMetadataReader(), ), );

This package already provides a built-in set of readers that you can check out:

You can pass the metadata reader to a platform that uses types that require metadata. So the complete example of using readers would look like this:

use TypeLang\Mapper\Mapper; use TypeLang\Mapper\Mapping\Provider\InMemoryProvider; use TypeLang\Mapper\Mapping\Provider\MetadataBuilder; use TypeLang\Mapper\Mapping\Reader\NullReader; use TypeLang\Mapper\Mapping\Reader\ReflectionReader; use TypeLang\Mapper\Platform\StandardPlatform; // An example of a composition from metadata readers $reader = [[[new ReflectionReader(|meta-reader-reflection.html]]] delegate: [[[new NullReader()|meta-reader-null.html]]], ); // Passing readers to the metadata builder $provider = [[[new MetadataBuilder(|meta-provider.html]]] reader: $reader, ); // An example of provider supplement $provider = [[[new InMemoryProvider(|meta-provider-in-memory.html]]] delegate: $provider, ); // Create mapper with a platform that supports metadata $mapper = new Mapper([[[new StandardPlatform(|standard-platform.html]]] meta: $provider, ));
06 November 2025