class FileTextExtractable extends Extension (View source)

Decorate File or a File derivative to enable text extraction from the file content. Uses a set of subclasses of FileTextExtractor to do the extraction based on the content type of the file.

Adds an additional property which is the cached contents, which is populated on demand.

Properties

protected T $owner

The object this extension is applied to.

from  Extension
protected FileTextCache $fileTextCache

Methods

public
__construct()

No description

public static 
add_to_class(string $class, string $extensionClass, mixed $args = null)

Called when this extension is added to a particular class

public
setOwner(object $owner)

Set the owner of this extension.

public
mixed
withOwner(mixed $owner, callable $callback, array $args = [])

Temporarily modify the owner. The original owner is ensured to be restored

public
clearOwner()

Clear the current owner, and restore extension to the state prior to the last setOwner()

public
T
getOwner()

Returns the owner of this extension.

public static 
string
get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or Object::add_extension().

public
mixed
invokeExtension(object $owner, string $method, array ...$arguments)

Invoke extension point. This will prefer explicit extend prefixed methods.

public
$this
setTextCache(FileTextCache $cache)

No description

public
getTextCache()

No description

public
string
getFileContent()

Helper function for template

public
string|null
extractFileAsText(bool $disableCache = false)

Tries to parse the file contents if a FileTextExtractor class exists to handle the file type, and returns the text. The value is also cached into the File record itself.

protected
void
onBeforeWrite()

No description

Details

__construct()

No description

static add_to_class(string $class, string $extensionClass, mixed $args = null)

Called when this extension is added to a particular class

Parameters

string $class
string $extensionClass
mixed $args

setOwner(object $owner)

Set the owner of this extension.

Parameters

object $owner

The owner object

mixed withOwner(mixed $owner, callable $callback, array $args = [])

Temporarily modify the owner. The original owner is ensured to be restored

Parameters

mixed $owner

Owner to set

callable $callback

Callback to invoke

array $args

Args to pass to callback

Return Value

mixed

clearOwner()

Clear the current owner, and restore extension to the state prior to the last setOwner()

T getOwner()

Returns the owner of this extension.

Return Value

T

static string get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or Object::add_extension().

Parameters

string $extensionStr

E.g. "Versioned('Stage','Live')"

Return Value

string

Extension classname, e.g. "Versioned"

mixed invokeExtension(object $owner, string $method, array ...$arguments)

Invoke extension point. This will prefer explicit extend prefixed methods.

Parameters

object $owner
string $method
array ...$arguments

Return Value

mixed

$this setTextCache(FileTextCache $cache)

No description

Parameters

FileTextCache $cache

Return Value

$this

FileTextCache getTextCache()

No description

Return Value

FileTextCache

string getFileContent()

Helper function for template

Return Value

string

string|null extractFileAsText(bool $disableCache = false)

Tries to parse the file contents if a FileTextExtractor class exists to handle the file type, and returns the text. The value is also cached into the File record itself.

Parameters

bool $disableCache

If false, the file content is only parsed on demand. If true, the content parsing is forced, bypassing the cached version

Return Value

string|null

protected void onBeforeWrite()

No description

Return Value

void