phrity/util-transformer
Lightweight PHP utility for transforming values between types. Provides transformers with canTransform()/transform(), plus resolvers to chain and recurse converters. Includes JSON/flatten decoders and converters for basic types, DateTime, enums, Stringable, Throwable and more.
Documentation / First Match Resolver
The FirstMatchResolver takes a list of transformers, and use the first transformer that are able to transform an input.
You typically add the BasicTypeConverter last, in case any other transformer can not apply.
$resolver = new FirstMatchResolver([
new EnumConverter(),
new ReadableConverter(),
new ThrowableConverter(),
new StringableConverter(),
new BasicTypeConverter(),
]);
// Convert using first match transformer
$resolver->canTransform($input); // -> bool
$resolver->transform($input); // -> converted output
// Convert to other types
$resolver->canTransform($input, Type::STRING); // -> bool
$resolver->transform($input, Type::STRING); // -> string output
// Force type conversion
$resolver = new FirstMatchResolver([
new EnumConverter(),
new ReadableConverter(),
new ThrowableConverter(),
new StringableConverter(),
new BasicTypeConverter(),
], Type::STRING);
$resolver->canTransform($input); // -> bool
$resolver->transform($input); // -> string output
How can I help you explore Laravel packages today?