Closed sabina-talipova closed 1 year ago
@emteknetnz, I went through your list and this is a small report about my investigation:
Before I've started to work on upgrading new deps, I've checked do we use League\Flysystem
classes anywhere else. Only silverstripe\assets
uses this module.
['basename']
in the following methods HashFileIDHelper::parseFileID()
, LegacyFileIDHelper::parseFileID()
, LegacyFileIDHelper::parseSilverStripe30VariantFileID()
, NaturalFileIDHelper::parseFileID()
is a part of result of preg_match()
php function. basename
is a named subpattern.
These parts are unrelated of changes that were made.
getMetaData()
methods in another classes related to SilverStripe\Assets\Storage\AssetStore
interface and
SilverStripe\Assets\Storage\AssetContainer
interface.
class FlysystemAssetStore implements AssetStore
implements getMetaData
method and uses new methods in League\Flysystem\Filesystem
class that replaced old League\Flysystem\Filesystem
getMetaData()
method.class File extends DataObject implements AssetContainer
in getMetaData()
method uses getMetaData()
method in DBFile
class, that in its order uses getMetaData()
existing in FlysystemAssetStore
rename()
is a method of FlysystemAssetStore
class and it used League\Flysystem
method rename()
before. I've replaced it with new method move()
update()
methods are unrelated to new changes.
getTimestamp()
method is unrelated to new changes.
has()
. Most of the places where we invoke has
method, we invoke them either in implementation of CacheInterface
or in Injector
class.
Most of the invoke of has()
method in silverstripe-assets
. I implemented part of old has()
method logic in new SilverStripe\Assets\Flysystem\Filesystem
class.
getMimetype()
the similar situation as with getMetaData()
.
getSize()
in File
class has its own logic, unrelated to new changes.
getVisibility()
the similar situation as with getMetaData()
Issue
https://github.com/silverstripe/silverstripe-assets/issues/497
Description
ExtendedFilesystem extends Filesystem
to providegetAdapter()
method, that was removed from mainlegue/flysystem
Filesystem
class (GitHub discussion)ExtendedLocalFilesystemAdapter extends LocalFilesystemAdapter
to provideprefixPath
method that replacesapplyPathPrefix
method from removedabstract class AbstractAdapter
(GitHub discussion)SilverStripe\Assets\Util
to replace removedLeague\Flysystem\Util
and implement some of required methods.Notes:
Filesystem has()
method to more appropriateddirectoryExists
orfileExists
, sincehas
checks both casesdirectoryExists
orfileExists
and returnstrue
, if one of them returnstrue
;listContents
method returnsDirectoryListing
, but previous version returnedarray
. For this case, invoketoArray
method on result to returnarray
to support existing functionality.