PHP TypeLang Help

Metadata Providers

Metadata providers are responsible for "freezing" (building) and providing "frozen" metadata.

One of the main ones is MetadataBuilder, which contains the rules for transforming the mutable read data from metadata readers and assembling it into the final immutable result.

use TypeLang\Mapper\Mapping\Provider\MetadataBuilder; $provider = new MetadataBuilder( [[[reader: $reader,|meta-reader.html]]] );

During metadata assembly, a MetadataBuilder may require a number of additional optional dependencies. All of these can be passed to the constructor:

Information about other built-in providers is available on the corresponding documentation pages:

You can pass the metadata provider to a platform that uses types that require metadata. So the complete example of using providers 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(|]]] 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, ));
05 July 2026