innmind / encoding
2.0.0
2025-04-16 18:01 UTC
Requires
- php: ~8.2
- innmind/filesystem: ~8.0
- innmind/immutable: ~5.7
- innmind/time-continuum: ~4.1
Requires (Dev)
- innmind/black-box: ~6.1
- innmind/coding-standard: ~2.0
- innmind/static-analysis: ^1.2.1
This package is auto-updated.
Last update: 2025-04-16 18:02:14 UTC
README
This packages allows to encode and compress files and directories without the need for them to be written to the filesystem and never loaded entirely in memory.
Note Each file contained in a
tar
file can't exceed an 8Go size.
Installation
composer require innmind/encoding
Usage
use Innmind\Filesystem\{ Adapter\Filesystem, Name, }; use Innmind\TimeContinuum\Clock; use Innmind\Url\Path; use Innmind\Encoding\{ Gzip, Tar, }; $adapter = Filesystem::mount(Path::of('some/directory/')); $tar = $adapter ->get(Name::of('data')) ->map(Tar::encode(Clock::live())) ->map(Gzip::compress()) ->match( static fn($file) => $file, static fn() => null, );
Here $tar
represents a .tar.gz
file content containing all the files and directories from some/directory/data/
, unless the data
doesn't exist then it is null
.
Documentation
Full documentation can be found at https://innmind.org/encoding/.