tiny-blocks/encoder

Encoder and decoder for arbitrary data.

2.0.0 2024-10-04 03:25 UTC

This package is auto-updated.

Last update: 2024-11-04 04:25:28 UTC


README

License

Overview

Encoder and decoder for arbitrary data.

Installation

composer require tiny-blocks/encoder

How to use

The library provides concrete implementations of the Encoder interface, enabling encoding and decoding of data into specific formats like Base62.

Using Base62

To encode a value into Base62 format:

$encoder = Base62::from(value: 'Hello world!');
$encoded = $encoder->encode();

# Output: T8dgcjRGuYUueWht

To decode a Base62-encoded value back to its original form:

$encoder = Base62::from(value: 'T8dgcjRGuYUueWht');
$decoded = $encoder->decode();

# Output: Hello world!

If you attempt to decode an invalid Base62 value, an InvalidDecoding exception will be thrown:

try {
    $encoder = Base62::from(value: 'invalid_value');
    $decoded = $encoder->decode();
} catch (InvalidDecoding $exception) {
    echo $exception->getMessage();
    # Output: The value <invalid_value> could not be decoded.
}

License

Encoder is licensed under MIT.

Contributing

Please follow the contributing guidelines to contribute to the project.