Flysystem v3 port #55
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a preliminary PR porting FlyFinder to Flysystem 3 and minimum PHP 8, motivated by our use of (and contributions to) FlyFinder, combined with our desire to free ourselves from the antedeluvial Flysystem 1 dependence.
Summary:
Finderconstructor takes aFilesystemOperatorobject,handle()was renamed tofind(), and you invoke it on theFinderobject.arraywith file/directory attributes will takearray|StorageAttributesnow. This is preliminary, and thearrayalternative is probably only used in tests that will need further tweaking to properly mockFileAttributesandDirectoryAttributesobjects.pathinfo(), regex,str_*()), becauseStorageAttributesonly offer unparsedpath- this is an optimization decision by Flysystem authors, to avoid parsing every path where it isn't known to be needed.Things I got green:
StorageAttributesmocking)Things I'd appreciate help with:
@psalm-pure. Previously native array accesses to$value['path']are nowProxyArrayAccessToProperties::offsetGet(), and Flysystem authors either neglected or couldn't mark it as pure. We can give up being pure ourselves, suppress the diagnostic (which is what I did for now), or plead with Flysystem authors.make install-phivefails ongpg --recv-keys