Build Status Coverage Status

Type transformers, normalizers and resolvers.

Installation

Install with Composer;

composer require phrity/util-transformer

All transformers exposes canTransform() and transform() methods.

This allows us to transform data of a certain type to another type. A specific transformer may not be able to transform all types.

$transformer = new BasicTypeConverter();
if ($transformer->canTransform($subject)) {
    $transformed = transformer->transform($subject);
}

As option, a transformer can take a target type specifier as second argument.

$transformer = new BasicTypeConverter();
if ($transformer->canTransform($subject, Type::ARRAY)) {
    $transformed = transformer->transform($subject, Type::ARRAY);
}

Utility resolvers enable stacking multiple transformers and performing other tasks.

$transformer = new RecursionResolver(
    new FirstMatchResolver([
        new EnumConverter(),
        new ReadableConverter(),
        new ThrowableConverter(),
        new StringableConverter(),
        new BasicTypeConverter(),
    ])
);
if ($transformer->canTransform($subject, Type::STRING)) {
    $transformed = transformer->transform($subject, Type::STRING);
}

Type converters

Utility resolvers

Version PHP
1.1 ^8.1 Additional transformers
1.0 ^8.1 Initial version