matraux / filesystem
A PHP 8.4+ library for object-oriented file and folder manipulation with support for PSR-7 and Nette\Http\FileUpload.
3.0.0
2026-05-19 15:30 UTC
Requires
- php: >=8.4
Requires (Dev)
- codeception/codeception: ^5.3
- codeception/module-asserts: ^3.3
- matraux/php-cs-fixer-config: ^2.0
- nette/http: ^3.3
- phpstan/phpstan: ^2.1
- psr/http-message: ^2.0
Suggests
- nette/http: Required only if you use HTTP-specific features like Request, Session etc.
- psr/http-message: Required only if you use PSR HTTP message features.
README
Introduction
A PHP 8.4+ library that simplifies file and folder operations using an object-oriented API. Supports renaming, moving, streaming, and deletion with optional integration for PSR-7 and Nette\Http\FileUpload.
Features
- File and folder manipulation with fluent API
- Relative and absolute path resolution
- File iteration via chunks (stream-style)
- Automatic cleanup of temporary files
- PSR-7 stream support
Psr\Http\Message\StreamInterface - Nette FileUpload support
Nette\Http\FileUpload - Easy extension via inheritance
Installation
composer require matraux/filesystem
PHP compatibility
This package provides separate major versions for different PHP baselines.
| Version | PHP |
|---|---|
| 1.x | 7.4+ |
| 2.x | 8.3+ |
| 3.x | 8.4+ |
Examples
See File for advanced instructions.
use Matraux\FileSystem\File\File; $file = File::fromPath('C:\Users\MATRAUX\Webs\Resources\FileSystem\log.txt'); echo $file->name; // "log.txt"
See Folder for advanced instructions.
use Matraux\FileSystem\Folder\Folder; $folder = Folder::fromPath()->addPath('backup'); echo $folder->absolute; // "C:\Users\MATRAUX\Webs\Resources\FileSystem\backup"
Development
See Development for debug, test instructions, static analysis, and coding standards.
Support
For bug reports and feature requests, please use the issue tracker.