rekalogika / file
High-level file abstraction library built on top of Flysystem. It lets you work with file objects in an object-oriented manner. A file object represents a file in a Flysystem filesystem. It can be a local file or a file in a cloud storage, the library lets you work with them in the same way.
Fund package maintenance!
priyadi
Installs: 1 305
Dependents: 4
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^8.1
- league/flysystem: ^3.16
- league/mime-type-detection: ^1.0.0
- php-http/discovery: ^1.15
- psr/http-factory-implementation: ^1.0
- psr/http-message: ^1.0 || ^2.0
- rekalogika/file-contracts: ^1.11
- rekalogika/file-metadata: ^1.11
- symfony/deprecation-contracts: ^3.1
Requires (Dev)
- nyholm/psr7: ^1.8
This package is auto-updated.
Last update: 2024-11-03 15:27:29 UTC
README
High-level file abstraction library built on top of Flysystem. It lets you work with file objects in an object-oriented manner. A file object represents a file in a Flysystem filesystem. It can be a local file or a file in a cloud storage, the library lets you work with them in the same way.
Features
- Rich, high-level abstraction of files built on top of Flysystem.
- Abstractions for file name and media type (MIME type).
- Caches and stores metadata in a sidecar file. Uniform metadata support across all filesystems.
- Uses the repository pattern for files.
- Remote façade pattern in accessing metadata. Improves performance with remote filesystems. Two metadata queries require only one round trip.
- Rich metadata support.
- Option to use lazy-loading proxy for files.
- Support for file derivations.
- Separated contracts and implementation. Useful for enforcing architectural boundaries. Your domain models don't have to depend on the framework.
Documentation
License
MIT
Contributing
The rekalogika/file
repository is a read-only repo split from the main repo.
Issues and pull requests should be submitted to the
rekalogika/file-src monorepo.