PHP code example of aveiv / mixed-value

1. Go to this page and download the library: Download aveiv/mixed-value library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

aveiv / mixed-value example snippets


$mixed = new MixedValue([
    'good' => [
        'path' => 'value',
    ]
]);

$mixed['good']['path']->getValue(); // returns "value"
$mixed['invalid']['path']->getValue(); // throws MissingValueException

$mixed['invalid']['path']->findValue(); // returns null
$mixed['invalid']['path']->findValue() ?? 'default'; // returns "default"

$mixed = new MixedValue([
    'array_val' => [],
    'bool_val' => true,
    'float_val' => 1.0,
    'int_val' => 1,
    'numeric_val' => '99.99',
    'str_val' => 'string',
]);

$mixed['array_val']->isArray()->getValue(); // returns []
$mixed['bool_val']->isBool()->getValue(); // returns true
$mixed['float_val']->isFloat()->getValue(); // returns 1.0
$mixed['int_val']->isInt()->getValue(); // returns 1
$mixed['numeric_val']->isNumeric()->getValue(); // returns '99.99'
$mixed['str_val']->isString()->getValue(); // returns "string"

$mixed['str_val']->isInt()->getValue(); // throws UnexpectedValueException

$mixed = new MixedValue([
    'id' => '99',
    'name' => 'Mary',
    'birthdate' => '1990-01-01',
    'balance' => '999.99',
    'isActive' => 1,
    
    'array_data' => [],
]);

$mixed['id']->toInt()->getValue(); // returns 99
$mixed['name']->toString()->getValue(); // returns "Mary"
$mixed['birthdate']->toDateTime()->getValue(); // returns DateTime("1990-01-01")
$mixed['balance']->toFloat()->getValue(); // returns 999.99
$mixed['isActive']->toBool()->getValue(); // returns true

$mixed['array_data']->toString()->getValue(); // throws UnexpectedValueException

$mixed = new MixedValue([
    'mixed_arr' => [1, 2, '3', 4, 5],
]);

$mixed['mixed_arr']
    ->map(fn(MixedValue $el) => $el->toInt()->getValue())
    ->getValue(); // returns [1, 2, 3, 4, 5]

class StripSpacesProcessor implements ValueProcessorInterface
{
    public function __invoke($value)
    {
        if (!is_string($value)) {
            throw new UnexpectedValueException('Value must be a string');
        }
        return str_replace(' ', '', $value);
    }
}

$mixed = new MixedValue([
    'bad_float' => '9 999.99',
]);
$mixed->registerValueProcessor('stripSpaces', new StripSpacesProcessor());

$mixed['bad_float']->stripSpaces()->toFloat()->getValue(); // return 9999.99