Download the PHP package 1tomany/data-uri without Composer
On this page you can find all versions of the php package 1tomany/data-uri. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package data-uri
Data URI Parser for PHP
This simple library allows you to easily convert a wide variety of data into a temporary file represented by a lightweight immutable value object. It also includes Symfony bundle integration for autowiring, serialization, and console usage.
Installation
API Overview
The four methods exposed by this library are:
OneToMany\DataUri\DataDecoder::decode()OneToMany\DataUri\DataDecoder::decodeBase64()OneToMany\DataUri\DataDecoder::decodeText()OneToMany\DataUri\DataDecoder::fromMarkdown()
Each method returns a OneToMany\DataUri\Record\TemporaryFile value object which implements the interface OneToMany\DataUri\Contract\Record\TemporaryFileInterface. By default, the TemporaryFile object will delete any filesystem resources it knows about when it is explicitly destructed or garbage collected.
The DataDecoder::decode() method is the most versatile as it allows for a wide variety of inputs:
- A data URI defined in RFC2397
- A file from an accessible filesystem
- A public HTTP or HTTPS URL
DataDecoder::decode()
Use this method when the type or source of data is unknown. This method has the following arguments:
mixed $dataThe data, file, or URL to decode-
string|FileType|null $type = nullThe MIME type of the temporary fileIf empty, the type will be determined using either the file's extension or the
mime_content_type()function. You may want to explicitly provide this argument when the file can be multiple types. For example,mime_content_type()may returntext/plainfor Markdown files, which is correct, however, you may wish to use the more specific MIME typetext/markdown. -
?string $name = nullThe name for the temporary fileThis is useful for handling file uploads where the original filename is preferred over the random one PHP assigns. A randomly generated name will be used if this is empty and a name cannot be resolved.
Inside DataDecoder::decode()
Under the hood, the decode() method uses the fopen() and stream_get_contents() functions provided by the PHP standard library, which means the data passed to it can be any supported stream.
DataDecoder::decodeBase64()
Use this method when the data is known to be base64 encoded but NOT encoded as a data URI. This method has the following arguments:
?string $dataThe base64 encoded stringstring|FileType $typeThe MIME type of the data?string $name = nullSee thedecode()method
DataDecoder::decodeText()
Use this method when the data is known to be plaintext. This method has the following arguments:
?string $textThe plaintext stringstring|FileType $type = FileType::TxtThe MIME type of the text?string $name = nullSee thedecode()method
DataDecoder::fromMarkdown()
Use this method when the data is known to be Markdown. This method has the following arguments:
?string $markdownThe Markdown string?string $name = nullSee thedecode()method
Symfony Integration
The package includes OneToMany\DataUri\DataUriBundle. Symfony Flex enables it automatically after installation, and OneToMany\DataUri\DataDecoder can then be autowired without additional service configuration:
No bundle configuration is necessary. The bundle also:
- registers
OneToMany\DataUri\Serializer\TemporaryFileNormalizerwith Symfony's Serializer component - provides the
onetomany:data-uri:encode-fileconsole command for converting a file to a base64-encoded data URI
The framework-independent API remains available by constructing DataDecoder directly.
Examples
Run and inspect the decode.php file for examples on how to use the DataDecoder::decode() method.
Credits
License
The MIT License
All versions of data-uri with dependencies
ext-ctype Version *
ext-fileinfo Version *
ext-mbstring Version *
symfony/config Version ^7.2|^8.0|^8.1
symfony/console Version ^7.2|^8.0|^8.1
symfony/dependency-injection Version ^7.2|^8.0|^8.1
symfony/filesystem Version ^7.2|^8.0|^8.1
symfony/http-kernel Version ^7.2|^8.0|^8.1
symfony/serializer Version ^7.2|^8.0|^8.1