NaturalFileIDHelper
class NaturalFileIDHelper extends AbstractFileIDHelper (View source)
Parsed Natural path URLs. Natural path is the same hashless path that appears in the CMS.
Natural paths are used by the public adapter from SilverStripe 4.4
e.g.: Uploads/sam__ResizedImageWzYwLDgwXQ.jpg
Traits
A class that can be instantiated or replaced via DI
Constants
EXTENSION_REWRITE_VARIANT |
A variant type for encoding a variant filename with a different extension than the original. |
protected EXTENSION_ORIGINAL |
Use the original file's extension |
protected EXTENSION_VARIANT |
Use the variant file's extension |
Methods
An implementation of the factory method, allows you to create an instance of a class
Creates a class instance by the "singleton" design pattern.
Map file tuple (hash, name, variant) to a filename to be used by flysystem
Get the original file's filename with the extension rewritten to be the same as either the original or the variant extension.
Clean up filename to remove constructs that might clash with the underlying path format of this FileIDHelper.
Specify if this File ID Helper stores variants in subfolders and require a recursive look up to find all variants.
Get Filename, Variant and Hash from a fileID. If a FileID can not be parsed, returns null
.
Determine if the provided fileID is a variant of $parsedFileID
.
Compute the relative path where variants of the provided parsed file ID are expected to be stored.
Details
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();
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).
string
buildFileID(string|ParsedFileID $filename, string $hash = null, string $variant = null, bool $cleanfilename = true)
Map file tuple (hash, name, variant) to a filename to be used by flysystem
protected string
swapExtension(string $filename, string $variant, int $extIndex)
Get the original file's filename with the extension rewritten to be the same as either the original or the variant extension.
string
cleanFilename(string $filename)
Clean up filename to remove constructs that might clash with the underlying path format of this FileIDHelper.
bool
lookForVariantRecursive()
Specify if this File ID Helper stores variants in subfolders and require a recursive look up to find all variants.
protected string
getFileIDBase($shortFilename, $fullFilename, $hash, $variant)
No description
protected void
validateFileParts($filename, $hash, $variant)
No description
ParsedFileID|null
parseFileID(string $fileID)
Get Filename, Variant and Hash from a fileID. If a FileID can not be parsed, returns null
.
bool
isVariantOf(string $fileID, ParsedFileID $original)
Determine if the provided fileID is a variant of $parsedFileID
.
string
lookForVariantIn(ParsedFileID $parsedFileID)
Compute the relative path where variants of the provided parsed file ID are expected to be stored.