class FileIDHelperResolutionStrategy implements FileResolutionStrategy (View source)

File resolution strategy that relies on a list of FileIDHelpers to find files.

  • DefaultFileIDHelper is the default helper use to generate new file ID.
  • ResolutionFileIDHelpers can contain a list of helpers that will be used to try to find existing file.

This file resolution strategy can be helpful when the approach to resolving files has changed over time and you need older file format to resolve.

You may also provide a VersionedStage to only look at files that were published.

Traits

Provides extensions to this object to integrate it with standard config API methods.

A class that can be instantiated or replaced via DI

Config options

dependencies

Properties

Methods

public static 
config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

public
mixed
uninherited(string $name)

Gets the uninherited value for the given config option

public static 
create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

public static 
singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

public
__construct()

No description

public
setFileHashingService($service)

No description

public
resolveFileID(string $fileID, Filesystem $filesystem)

Try to resolve a file ID against the provided Filesystem.

public
softResolveFileID(string $fileID, Filesystem $filesystem)

Try to resolve a file ID against the provided Filesystem looking at newer versions of the file.

public
generateVariantFileID(ParsedFileID|array $tuple, Filesystem $fs)

Build a file ID for a variant so it follows the pattern of its original file. The variant may not exist on the Filesystem yet, but the original file has to. This is to make sure that variant files always follow the same pattern as the original file they are attached to.

public
searchForTuple(array|ParsedFileID $tuple, Filesystem $filesystem, bool $strict = true)

Try to find a file ID for an existing file using the provided file tuple.

public
getDefaultFileIDHelper()

No description

public
setDefaultFileIDHelper(FileIDHelper $defaultFileIDHelper)

No description

public
getResolutionFileIDHelpers()

No description

public
setResolutionFileIDHelpers(array $resolutionFileIDHelpers)

No description

public
string
getVersionedStage()

No description

public
setVersionedStage(string $versionedStage)

No description

public
string
buildFileID(array|ParsedFileID $tuple)

Build a file ID for the provided tuple, irrespective of its existence.

public
generator|ParsedFileID[]|null
findVariants(array|ParsedFileID $tuple, Filesystem $filesystem)

Find all the variants of the provided tuple

public
string
cleanFilename(string $filename)

Normalise a filename to be consistent with this file resolution strategy.

public
parseFileID($fileID)

Try to resolve the provided file ID string irrespective of whether it exists on the Filesystem or not.

public
stripVariant(string|ParsedFileID $fileID)

Given a fileID string or a Parsed File ID, create a matching ParsedFileID without any variant.

Details

static Config_ForClass config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

Return Value

Config_ForClass

mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

static Injectable create(mixed ...$args)

An implementation of the factory method, allows you to create an instance of a class

This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.

This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create(SiteTree::class); $list = SiteTree::get();

Parameters

mixed ...$args

Return Value

Injectable

static Injectable singleton(string $class = null)

Creates a class instance by the "singleton" design pattern.

It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).

Parameters

string $class

Optional classname to create, if the called class should not be used

Return Value

Injectable

The singleton instance

__construct()

No description

setFileHashingService($service)

No description

Parameters

$service

ParsedFileID|null resolveFileID(string $fileID, Filesystem $filesystem)

Try to resolve a file ID against the provided Filesystem.

Parameters

string $fileID
Filesystem $filesystem

Return Value

ParsedFileID|null

Alternative FileID where the user should be redirected to.

ParsedFileID|null softResolveFileID(string $fileID, Filesystem $filesystem)

Try to resolve a file ID against the provided Filesystem looking at newer versions of the file.

Parameters

string $fileID
Filesystem $filesystem

Return Value

ParsedFileID|null

Alternative FileID where the user should be redirected to.

ParsedFileID generateVariantFileID(ParsedFileID|array $tuple, Filesystem $fs)

Build a file ID for a variant so it follows the pattern of its original file. The variant may not exist on the Filesystem yet, but the original file has to. This is to make sure that variant files always follow the same pattern as the original file they are attached to.

Parameters

ParsedFileID|array $tuple
Filesystem $fs

Return Value

ParsedFileID

ParsedFileID|null searchForTuple(array|ParsedFileID $tuple, Filesystem $filesystem, bool $strict = true)

Try to find a file ID for an existing file using the provided file tuple.

Parameters

array|ParsedFileID $tuple
Filesystem $filesystem
bool $strict

Whether we should enforce a hash check on the file we find

Return Value

ParsedFileID|null FileID

FileIDHelper getDefaultFileIDHelper()

No description

Return Value

FileIDHelper

setDefaultFileIDHelper(FileIDHelper $defaultFileIDHelper)

No description

Parameters

FileIDHelper $defaultFileIDHelper

FileIDHelper[] getResolutionFileIDHelpers()

No description

Return Value

FileIDHelper[]

setResolutionFileIDHelpers(array $resolutionFileIDHelpers)

No description

Parameters

array $resolutionFileIDHelpers

string getVersionedStage()

No description

Return Value

string

setVersionedStage(string $versionedStage)

No description

Parameters

string $versionedStage

string buildFileID(array|ParsedFileID $tuple)

Build a file ID for the provided tuple, irrespective of its existence.

Should always return the preferred file ID for this resolution strategy.

Parameters

array|ParsedFileID $tuple

Return Value

string

generator|ParsedFileID[]|null findVariants(array|ParsedFileID $tuple, Filesystem $filesystem)

Find all the variants of the provided tuple

Parameters

array|ParsedFileID $tuple
Filesystem $filesystem

Return Value

generator|ParsedFileID[]|null

Exceptions

UnableToCheckExistence

string cleanFilename(string $filename)

Normalise a filename to be consistent with this file resolution strategy.

Parameters

string $filename

Return Value

string

ParsedFileID parseFileID($fileID)

Try to resolve the provided file ID string irrespective of whether it exists on the Filesystem or not.

Parameters

$fileID

Return Value

ParsedFileID

ParsedFileID|null stripVariant(string|ParsedFileID $fileID)

Given a fileID string or a Parsed File ID, create a matching ParsedFileID without any variant.

Parameters

string|ParsedFileID $fileID

Return Value

ParsedFileID|null

A ParsedFileID with the expected FileID of the original file or null if the provided $fileID could not be understood