phrity/util-transformer

Type transformers, normalizers and resolvers.

1.1.0 2025-05-28 15:57 UTC

This package is auto-updated.

Last update: 2025-05-29 11:22:50 UTC


README

Phrity Util Transformer

Build Status Coverage Status

Introduction

Type transformers, normalizers and resolvers.

Installation

Install with Composer;

composer require phrity/util-transformer

How to use

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);
}

List of transformers in this library

Type converters

Utility resolvers

Versions

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