class Sha1FileHashingService implements FileHashingService, Flushable (View source)

Utility for computing and comparing unique file hash. All $fs parameters can either be:

  • an AssetStore constant VISIBILITY constant or
  • an actual Filesystem object.

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

default_cachable bool

Whetever Sha1FileHashingService should cache hash values by default.

Properties

Methods

public static 
config()

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

public
mixed
stat(string $name) deprecated

Get inherited config value

public
mixed
uninherited(string $name)

Gets the uninherited value for the given config option

public
$this
set_stat(string $name, mixed $value) deprecated

Update the config value for a given property

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
string
computeFromStream(resource $stream)

Compute the Hash value of the provided stream.

protected
string
algo()

Valid hashing algorithm constant that can be passed to hash_init.

public
string
computeFromFile(string $fileID, Filesystem|string $fs)

Compute the hash of the provided file

public
bool
compare($hashOne, $hashTwo)

Compare 2 full or partial hashes.

public
bool
isCached()

Whatever computed values should be cached

public
void
enableCache()

Enable caching of computed hash.

public
void
disableCache()

Disable caching of computed hash.

public
void
invalidate($fileID, $fs)

Invlaidate the cache for a specific key.

public static 
flush()

This function is triggered early in the request if the "flush" query parameter has been set. Each class that implements Flushable implements this function which looks after it's own specific flushing functionality.

public
false|string
get(string $fileID, Filesystem|string $fs)

Determined if we have an hash for the provided key and return the hash if present

public
void
set($fileID, $fs, $hash)

Explicitely set the cached hash for the provided key.

public
void
move(string $fromFileID, Filesystem|string $fromFs, string $toFileID, Filesystem|string $toFs = false)

Move the specified hash value to a different cached key.

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 stat(string $name) deprecated

deprecated 5.0 Use ->config()->get() instead

Get inherited config value

Parameters

string $name

Return Value

mixed

mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

$this set_stat(string $name, mixed $value) deprecated

deprecated 5.0 Use ->config()->set() instead

Update the config value for a given property

Parameters

string $name
mixed $value

Return Value

$this

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

string computeFromStream(resource $stream)

Compute the Hash value of the provided stream.

Parameters

resource $stream

Return Value

string

protected string algo()

Valid hashing algorithm constant that can be passed to hash_init.

Return Value

string

string computeFromFile(string $fileID, Filesystem|string $fs)

Compute the hash of the provided file

Parameters

string $fileID
Filesystem|string $fs

Return Value

string

Exceptions

FileNotFoundException

bool compare($hashOne, $hashTwo)

Compare 2 full or partial hashes.

Parameters

$hashOne
$hashTwo

Return Value

bool

Exceptions

InvalidArgumentException

bool isCached()

Whatever computed values should be cached

Return Value

bool

void enableCache()

Enable caching of computed hash.

Return Value

void

void disableCache()

Disable caching of computed hash.

Return Value

void

void invalidate($fileID, $fs)

Invlaidate the cache for a specific key.

Parameters

$fileID
$fs

Return Value

void

static flush()

This function is triggered early in the request if the "flush" query parameter has been set. Each class that implements Flushable implements this function which looks after it's own specific flushing functionality.

false|string get(string $fileID, Filesystem|string $fs)

Determined if we have an hash for the provided key and return the hash if present

Parameters

string $fileID
Filesystem|string $fs

Return Value

false|string f

void set($fileID, $fs, $hash)

Explicitely set the cached hash for the provided key.

Parameters

$fileID
$fs
$hash

Return Value

void

void move(string $fromFileID, Filesystem|string $fromFs, string $toFileID, Filesystem|string $toFs = false)

Move the specified hash value to a different cached key.

Parameters

string $fromFileID
Filesystem|string $fromFs
string $toFileID
Filesystem|string $toFs

Return Value

void