league/flysystem
Flysystem is a filesystem abstraction for PHP that lets you read, write, and manage files through a unified API across local disks and cloud storage (S3, FTP, SFTP, etc.). Swap adapters without changing app code, with consistent paths, streams, and visibility.
Full Changelog: https://github.com/thephpleague/flysystem/compare/3.15.1...3.16.0
Full Changelog: https://github.com/thephpleague/flysystem/compare/2.4.0...3.0.0
Blog post: https://blog.frankdejonge.nl/flysystem-3-0-0-is-released/
When resources are not actually file pointers, but fopen results from URL, the fstat call fails. This resulted in an error in PHP 7.4 because it's more strict about variable handling. This affected the Util::getStreamSize utility method.
A new minor version for Flysystem has been released due to a (very minor) backwards incompatibility for custom adapters.
The adapter now accepts visibility and config settings for the put and update methods. This added a new parameter to those functions which breaks the public interface. All user-land code will be backwards compatible, this change only affects custom adapters.
The writeStream method now ensures the existence of the parent directory before opening a stream.
Flysystem will now resolve relative paths, when unresolvable it will throw an exception (LogicException). file (or dir) paths that reach outside of the specified root are now disallowed which makes the entire API more secure and friendly to use. A path like some/nested/../location will be converted to some/location, making sure the cached metadata is correct and protecting you from possible security exploits when building file managers.
Various bugfixes and anonymous ftp support.
How can I help you explore Laravel packages today?