LocalDriver extends AbstractHierarchicalFilesystemDriver implements StreamableDriverInterface
Driver for the local file system
Table of Contents
Interfaces
- StreamableDriverInterface
- An interface FAL drivers have to implement to fulfil the needs of streaming files using PSR-7 Response objects.
Constants
- UNSAFE_FILENAME_CHARACTER_EXPRESSION = '\x00-\x2C\/\x3A-\x3F\x5B-\x60\x7B-\xBF'
Properties
- $absoluteBasePath : string
- The absolute base path. It always contains a trailing slash.
- $baseUri : string
- The base URL that points to this driver's storage. As long is this is not set, it is assumed that this folder is not publicly available
- $capabilities : int
- The capabilities of this driver. See \TYPO3\CMS\Core\Resource\ResourceStorageInterface::::CAPABILITY_* constants for possible values. This value should be set in the constructor of derived classes.
- $configuration : array<string|int, mixed>
- The configuration of this driver
- $mappingFolderNameToRole : array<string|int, mixed>
- $storageUid : int
- The storage uid the driver was instantiated for
- $supportedHashAlgorithms : array<string|int, mixed>
- A list of all supported hash algorithms, written all lower case.
Methods
- __construct() : mixed
- Creates this object.
- addFile() : string
- Adds a file from the local server hard disk to a given path in TYPO3s virtual file system.
- copyFileWithinStorage() : string
- Copies a file *within* the current storage.
- copyFolderWithinStorage() : bool
- Folder equivalent to copyFileWithinStorage().
- countFilesInFolder() : int
- Returns the number of files inside the specified path
- countFoldersInFolder() : int
- Returns the number of folders inside the specified path
- createFile() : string
- Creates a new (empty) file and returns the identifier.
- createFolder() : string
- Creates a folder, within a parent folder.
- deleteFile() : bool
- Removes a file from the filesystem. This does not check if the file is still used or if it is a bad idea to delete it for some other reason this has to be taken care of in the upper layers (e.g. the Storage)!
- deleteFolder() : bool
- Removes a folder from this storage.
- dumpFileContents() : mixed
- Directly output the contents of the file to the output buffer. Should not take care of header files or flushing buffer before. Will be taken care of by the Storage.
- fileExists() : bool
- Checks if a file exists.
- fileExistsInFolder() : bool
- Checks if a file inside a folder exists
- folderExists() : bool
- Checks if a folder exists.
- folderExistsInFolder() : bool
- Checks if a folder inside a folder exists.
- getCapabilities() : int
- Returns the capabilities of this driver.
- getDefaultFolder() : string
- Returns identifier of the default folder new files should be put into.
- getFileContents() : string
- Returns the contents of a file. Beware that this requires to load the complete file into memory and also may require fetching the file from an external location. So this might be an expensive operation (both in terms of processing resources and money) for large files.
- getFileForLocalProcessing() : string
- Returns (a local copy of) a file for processing it. This makes a copy first when in writable mode, so if you change the file, you have to update it yourself afterwards.
- getFileInfoByIdentifier() : array<string|int, mixed>
- Returns information about a file.
- getFileInFolder() : string
- Returns a file inside the specified path
- getFilesInFolder() : array<string|int, mixed>
- Returns a list of files inside the specified path
- getFolderInfoByIdentifier() : array<string|int, mixed>
- Returns information about a folder.
- getFolderInFolder() : string
- Returns the Identifier for a folder within a given folder.
- getFoldersInFolder() : array<string|int, string>
- Returns a list of folders inside the specified path
- getParentFolderIdentifierOfIdentifier() : mixed
- Returns the identifier of the folder the file resides in
- getPermissions() : array<string|int, mixed>
- Returns the permissions of a file/folder as an array (keys r, w) of boolean flags
- getPublicUrl() : string|null
- Returns the public URL to a file.
- getRole() : string
- Returns the role of an item (currently only folders; can later be extended for files as well)
- getRootLevelFolder() : string
- Returns the Identifier of the root level folder of the storage.
- getSpecificFileInformation() : bool|int|string
- Extracts a specific FileInformation from the FileSystems.
- hasCapability() : bool
- Returns TRUE if this driver has the given capability.
- hash() : string
- Creates a (cryptographic) hash for a file.
- hashIdentifier() : string
- Hashes a file identifier, taking the case sensitivity of the file system into account. This helps mitigating problems with case-insensitive databases.
- initialize() : mixed
- Initializes this object. This is called by the storage after the driver has been attached.
- isCaseSensitiveFileSystem() : bool
- Returns TRUE if this driver uses case-sensitive identifiers. NOTE: This is a configurable setting, but the setting does not change the way the underlying file system treats the identifiers; the setting should therefore always reflect the file system and not try to change its behaviour
- isFolderEmpty() : bool
- Checks if a folder contains files and (if supported) other folders.
- isWithin() : bool
- Checks if a given identifier is within a container, e.g. if a file or folder is within another folder. It will also return TRUE if both canonicalized identifiers are equal.
- mergeConfigurationCapabilities() : int
- Merges the capabilities merged by the user at the storage configuration into the actual capabilities of the driver and returns the result.
- moveFileWithinStorage() : string
- Moves a file *within* the current storage.
- moveFolderWithinStorage() : array<string|int, mixed>
- Folder equivalent to moveFileWithinStorage().
- processConfiguration() : mixed
- Processes the configuration for this driver.
- renameFile() : string
- Renames a file in this storage.
- renameFolder() : array<string|int, mixed>
- Renames a folder in this storage.
- replaceFile() : bool
- Replaces the contents (and file-specific metadata) of a file object with a local file.
- sanitizeFileName() : string
- Returns a string where any character not matching [.a-zA-Z0-9_-] is substituted by '_' Trailing dots are removed
- setFileContents() : int
- Sets the contents of a file to the specified value.
- setStorageUid() : mixed
- Sets the storage uid the driver belongs to
- streamFile() : ResponseInterface
- Stream file using a PSR-7 Response object.
- applyFilterMethodsToDirectoryItem() : bool
- Applies a set of filter methods to a file name to find out if it should be used or not. This is e.g. used by directory listings.
- calculateBasePath() : string
- Calculates the absolute path to this drivers storage location.
- canonicalizeAndCheckFileIdentifier() : string
- Makes sure the Path given as parameter is valid
- canonicalizeAndCheckFilePath() : string
- Makes sure the Path given as parameter is valid
- canonicalizeAndCheckFolderIdentifier() : string
- Makes sure the Path given as parameter is valid
- copyFileToTemporaryPath() : string
- Copies a file to a temporary path and returns that path.
- createIdentifierMap() : array<string|int, mixed>
- Creates a map of old and new file/folder identifiers after renaming or moving a folder. The old identifier is used as the key, the new one as the value.
- determineBaseUrl() : mixed
- Determines the base URL for this driver, from the configuration or the TypoScript frontend object
- extractFileInformation() : array<string|int, mixed>
- Extracts information about a file from the filesystem.
- getAbsoluteBasePath() : string
- Returns the absolute path of the folder this driver operates on.
- getAbsolutePath() : string
- Returns the absolute path of a file or folder.
- getDirectoryItemList() : array<string|int, string>
- Generic wrapper for extracting a list of items from a path.
- getRecycleDirectory() : string
- Get the path of the nearest recycler folder of a given $path.
- getTemporaryPathForFile() : non-empty-string
- Returns a temporary path for a given file, including the file extension.
- isAllowedAbsolutePath() : bool
- Wrapper for `GeneralUtility::isAllowedAbsPath`, which implicitly invokes `GeneralUtility::validPathStr` (like in `parent::isPathValid`).
- isPathValid() : bool
- Wrapper for \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr()
- isValidFilename() : bool
- Checks a fileName for validity. This could be overridden in concrete drivers if they have different file naming rules.
- recycleFileOrFolder() : bool
- Moves a file or folder to the given directory, renaming the source in the process if a file or folder of the same name already exists in the target path.
- retrieveFileAndFoldersInPath() : array<string|int, mixed>
- Returns a list with the names of all files and folders in a path, optionally recursive.
- sortDirectoryEntries() : array<string|int, mixed>
- Sort the directory entries by a certain key
Constants
UNSAFE_FILENAME_CHARACTER_EXPRESSION
public
string
UNSAFE_FILENAME_CHARACTER_EXPRESSION
= '\x00-\x2C\/\x3A-\x3F\x5B-\x60\x7B-\xBF'
Properties
$absoluteBasePath
The absolute base path. It always contains a trailing slash.
protected
string
$absoluteBasePath
$baseUri
The base URL that points to this driver's storage. As long is this is not set, it is assumed that this folder is not publicly available
protected
string
$baseUri
$capabilities
The capabilities of this driver. See \TYPO3\CMS\Core\Resource\ResourceStorageInterface::::CAPABILITY_* constants for possible values. This value should be set in the constructor of derived classes.
protected
int
$capabilities
= 0
$configuration
The configuration of this driver
protected
array<string|int, mixed>
$configuration
= []
$mappingFolderNameToRole
protected
array<string|int, mixed>
$mappingFolderNameToRole
= ['_recycler_' => \TYPO3\CMS\Core\Resource\FolderInterface::ROLE_RECYCLER, '_temp_' => \TYPO3\CMS\Core\Resource\FolderInterface::ROLE_TEMPORARY, 'user_upload' => \TYPO3\CMS\Core\Resource\FolderInterface::ROLE_USERUPLOAD]
$storageUid
The storage uid the driver was instantiated for
protected
int
$storageUid
$supportedHashAlgorithms
A list of all supported hash algorithms, written all lower case.
protected
array<string|int, mixed>
$supportedHashAlgorithms
= ['sha1', 'md5']
Methods
__construct()
Creates this object.
public
__construct([array<string|int, mixed> $configuration = [] ]) : mixed
Parameters
- $configuration : array<string|int, mixed> = []
addFile()
Adds a file from the local server hard disk to a given path in TYPO3s virtual file system.
public
addFile(string $localFilePath, string $targetFolderIdentifier[, string $newFileName = '' ][, bool $removeOriginal = true ]) : string
This assumes that the local file exists, so no further check is done here! After a successful the original file must not exist anymore.
Parameters
- $localFilePath : string
-
within public web path
- $targetFolderIdentifier : string
- $newFileName : string = ''
-
optional, if not given original name is used
- $removeOriginal : bool = true
-
if set the original file will be removed after successful operation
Tags
Return values
string —the identifier of the new file
copyFileWithinStorage()
Copies a file *within* the current storage.
public
copyFileWithinStorage(string $fileIdentifier, string $targetFolderIdentifier, string $fileName) : string
Note that this is only about an intra-storage copy action, where a file is just copied to another folder in the same storage.
Parameters
- $fileIdentifier : string
- $targetFolderIdentifier : string
- $fileName : string
Return values
string —the Identifier of the new file
copyFolderWithinStorage()
Folder equivalent to copyFileWithinStorage().
public
copyFolderWithinStorage(string $sourceFolderIdentifier, string $targetFolderIdentifier, string $newFolderName) : bool
Parameters
- $sourceFolderIdentifier : string
- $targetFolderIdentifier : string
- $newFolderName : string
Tags
Return values
boolcountFilesInFolder()
Returns the number of files inside the specified path
public
countFilesInFolder(string $folderIdentifier[, bool $recursive = false ][, array<string|int, mixed> $filenameFilterCallbacks = [] ]) : int
Parameters
- $folderIdentifier : string
- $recursive : bool = false
- $filenameFilterCallbacks : array<string|int, mixed> = []
-
callbacks for filtering the items
Return values
int —Number of files in folder
countFoldersInFolder()
Returns the number of folders inside the specified path
public
countFoldersInFolder(string $folderIdentifier[, bool $recursive = false ][, array<string|int, mixed> $folderNameFilterCallbacks = [] ]) : int
Parameters
- $folderIdentifier : string
- $recursive : bool = false
- $folderNameFilterCallbacks : array<string|int, mixed> = []
-
callbacks for filtering the items
Return values
int —Number of folders in folder
createFile()
Creates a new (empty) file and returns the identifier.
public
createFile(string $fileName, string $parentFolderIdentifier) : string
Parameters
- $fileName : string
- $parentFolderIdentifier : string
Tags
Return values
stringcreateFolder()
Creates a folder, within a parent folder.
public
createFolder(string $newFolderName[, string $parentFolderIdentifier = '' ][, bool $recursive = false ]) : string
If no parent folder is given, a rootlevel folder will be created
Parameters
- $newFolderName : string
- $parentFolderIdentifier : string = ''
- $recursive : bool = false
Return values
string —the Identifier of the new folder
deleteFile()
Removes a file from the filesystem. This does not check if the file is still used or if it is a bad idea to delete it for some other reason this has to be taken care of in the upper layers (e.g. the Storage)!
public
deleteFile(string $fileIdentifier) : bool
Parameters
- $fileIdentifier : string
Tags
Return values
bool —TRUE if deleting the file succeeded
deleteFolder()
Removes a folder from this storage.
public
deleteFolder(string $folderIdentifier[, bool $deleteRecursively = false ]) : bool
Parameters
- $folderIdentifier : string
- $deleteRecursively : bool = false
Tags
Return values
booldumpFileContents()
Directly output the contents of the file to the output buffer. Should not take care of header files or flushing buffer before. Will be taken care of by the Storage.
public
dumpFileContents(string $identifier) : mixed
Parameters
- $identifier : string
fileExists()
Checks if a file exists.
public
fileExists(string $fileIdentifier) : bool
Parameters
- $fileIdentifier : string
Return values
boolfileExistsInFolder()
Checks if a file inside a folder exists
public
fileExistsInFolder(string $fileName, string $folderIdentifier) : bool
Parameters
- $fileName : string
- $folderIdentifier : string
Return values
boolfolderExists()
Checks if a folder exists.
public
folderExists(string $folderIdentifier) : bool
Parameters
- $folderIdentifier : string
Return values
boolfolderExistsInFolder()
Checks if a folder inside a folder exists.
public
folderExistsInFolder(string $folderName, string $folderIdentifier) : bool
Parameters
- $folderName : string
- $folderIdentifier : string
Return values
boolgetCapabilities()
Returns the capabilities of this driver.
public
getCapabilities() : int
Tags
Return values
intgetDefaultFolder()
Returns identifier of the default folder new files should be put into.
public
getDefaultFolder() : string
Return values
stringgetFileContents()
Returns the contents of a file. Beware that this requires to load the complete file into memory and also may require fetching the file from an external location. So this might be an expensive operation (both in terms of processing resources and money) for large files.
public
getFileContents(string $fileIdentifier) : string
Parameters
- $fileIdentifier : string
Return values
string —The file contents if file exists and else empty string
getFileForLocalProcessing()
Returns (a local copy of) a file for processing it. This makes a copy first when in writable mode, so if you change the file, you have to update it yourself afterwards.
public
getFileForLocalProcessing(string $fileIdentifier[, bool $writable = true ]) : string
Parameters
- $fileIdentifier : string
- $writable : bool = true
-
Set this to FALSE if you only need the file for read operations. This might speed up things, e.g. by using a cached local version. Never modify the file if you have set this flag!
Return values
string —The path to the file on the local disk
getFileInfoByIdentifier()
Returns information about a file.
public
getFileInfoByIdentifier(string $fileIdentifier[, array<string|int, mixed> $propertiesToExtract = [] ]) : array<string|int, mixed>
Parameters
- $fileIdentifier : string
-
In the case of the LocalDriver, this is the (relative) path to the file.
- $propertiesToExtract : array<string|int, mixed> = []
-
Array of properties which should be extracted, if empty all will be extracted
Tags
Return values
array<string|int, mixed>getFileInFolder()
Returns a file inside the specified path
public
getFileInFolder(string $fileName, string $folderIdentifier) : string
Parameters
- $fileName : string
- $folderIdentifier : string
Return values
string —File Identifier
getFilesInFolder()
Returns a list of files inside the specified path
public
getFilesInFolder(string $folderIdentifier[, int $start = 0 ][, int $numberOfItems = 0 ][, bool $recursive = false ][, array<string|int, mixed> $filenameFilterCallbacks = [] ][, string $sort = '' ][, bool $sortRev = false ]) : array<string|int, mixed>
Parameters
- $folderIdentifier : string
- $start : int = 0
- $numberOfItems : int = 0
- $recursive : bool = false
- $filenameFilterCallbacks : array<string|int, mixed> = []
-
The method callbacks to use for filtering the items
- $sort : string = ''
-
Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
- $sortRev : bool = false
-
TRUE to indicate reverse sorting (last to first)
Return values
array<string|int, mixed> —of FileIdentifiers
getFolderInfoByIdentifier()
Returns information about a folder.
public
getFolderInfoByIdentifier(string $folderIdentifier) : array<string|int, mixed>
Parameters
- $folderIdentifier : string
-
In the case of the LocalDriver, this is the (relative) path to the file.
Tags
Return values
array<string|int, mixed>getFolderInFolder()
Returns the Identifier for a folder within a given folder.
public
getFolderInFolder(string $folderName, string $folderIdentifier) : string
Parameters
- $folderName : string
-
The name of the target folder
- $folderIdentifier : string
Return values
stringgetFoldersInFolder()
Returns a list of folders inside the specified path
public
getFoldersInFolder(string $folderIdentifier[, int $start = 0 ][, int $numberOfItems = 0 ][, bool $recursive = false ][, array<string|int, mixed> $folderNameFilterCallbacks = [] ][, string $sort = '' ][, bool $sortRev = false ]) : array<string|int, string>
Parameters
- $folderIdentifier : string
- $start : int = 0
- $numberOfItems : int = 0
- $recursive : bool = false
- $folderNameFilterCallbacks : array<string|int, mixed> = []
-
The method callbacks to use for filtering the items
- $sort : string = ''
-
Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
- $sortRev : bool = false
-
TRUE to indicate reverse sorting (last to first)
Return values
array<string|int, string> —folder identifiers (where key and value are identical, but int-like identifiers will get converted to int array keys)
getParentFolderIdentifierOfIdentifier()
Returns the identifier of the folder the file resides in
public
getParentFolderIdentifierOfIdentifier(string $fileIdentifier) : mixed
Parameters
- $fileIdentifier : string
getPermissions()
Returns the permissions of a file/folder as an array (keys r, w) of boolean flags
public
getPermissions(string $identifier) : array<string|int, mixed>
Parameters
- $identifier : string
Tags
Return values
array<string|int, mixed>getPublicUrl()
Returns the public URL to a file.
public
getPublicUrl(string $identifier) : string|null
For the local driver, this will always return a path relative to public web path.
Parameters
- $identifier : string
Return values
string|null —NULL if file is missing or deleted, the generated url otherwise
getRole()
Returns the role of an item (currently only folders; can later be extended for files as well)
public
getRole(string $folderIdentifier) : string
Parameters
- $folderIdentifier : string
Return values
stringgetRootLevelFolder()
Returns the Identifier of the root level folder of the storage.
public
getRootLevelFolder() : string
Return values
stringgetSpecificFileInformation()
Extracts a specific FileInformation from the FileSystems.
public
getSpecificFileInformation(string $fileIdentifier, string $containerPath, string $property) : bool|int|string
Parameters
- $fileIdentifier : string
- $containerPath : string
- $property : string
Tags
Return values
bool|int|stringhasCapability()
Returns TRUE if this driver has the given capability.
public
hasCapability(int $capability) : bool
Parameters
- $capability : int
-
A capability, as defined in a CAPABILITY_* constant
Return values
boolhash()
Creates a (cryptographic) hash for a file.
public
hash(string $fileIdentifier, string $hashAlgorithm) : string
Parameters
- $fileIdentifier : string
- $hashAlgorithm : string
-
The hash algorithm to use
Tags
Return values
stringhashIdentifier()
Hashes a file identifier, taking the case sensitivity of the file system into account. This helps mitigating problems with case-insensitive databases.
public
hashIdentifier(string $identifier) : string
Parameters
- $identifier : string
Return values
stringinitialize()
Initializes this object. This is called by the storage after the driver has been attached.
public
initialize() : mixed
isCaseSensitiveFileSystem()
Returns TRUE if this driver uses case-sensitive identifiers. NOTE: This is a configurable setting, but the setting does not change the way the underlying file system treats the identifiers; the setting should therefore always reflect the file system and not try to change its behaviour
public
isCaseSensitiveFileSystem() : bool
Return values
boolisFolderEmpty()
Checks if a folder contains files and (if supported) other folders.
public
isFolderEmpty(string $folderIdentifier) : bool
Parameters
- $folderIdentifier : string
Return values
bool —TRUE if there are no files and folders within $folder
isWithin()
Checks if a given identifier is within a container, e.g. if a file or folder is within another folder. It will also return TRUE if both canonicalized identifiers are equal.
public
isWithin(string $folderIdentifier, string $identifier) : bool
Parameters
- $folderIdentifier : string
- $identifier : string
-
identifier to be checked against $folderIdentifier
Return values
bool —TRUE if $content is within or matches $folderIdentifier
mergeConfigurationCapabilities()
Merges the capabilities merged by the user at the storage configuration into the actual capabilities of the driver and returns the result.
public
mergeConfigurationCapabilities(int $capabilities) : int
Parameters
- $capabilities : int
Return values
intmoveFileWithinStorage()
Moves a file *within* the current storage.
public
moveFileWithinStorage(string $fileIdentifier, string $targetFolderIdentifier, string $newFileName) : string
Note that this is only about an inner-storage move action, where a file is just moved to another folder in the same storage.
Parameters
- $fileIdentifier : string
- $targetFolderIdentifier : string
- $newFileName : string
Tags
Return values
stringmoveFolderWithinStorage()
Folder equivalent to moveFileWithinStorage().
public
moveFolderWithinStorage(string $sourceFolderIdentifier, string $targetFolderIdentifier, string $newFolderName) : array<string|int, mixed>
Parameters
- $sourceFolderIdentifier : string
- $targetFolderIdentifier : string
- $newFolderName : string
Tags
Return values
array<string|int, mixed> —A map of old to new file identifiers
processConfiguration()
Processes the configuration for this driver.
public
processConfiguration() : mixed
renameFile()
Renames a file in this storage.
public
renameFile(string $fileIdentifier, string $newName) : string
Parameters
- $fileIdentifier : string
- $newName : string
-
The target path (including the file name!)
Tags
Return values
string —The identifier of the file after renaming
renameFolder()
Renames a folder in this storage.
public
renameFolder(string $folderIdentifier, string $newName) : array<string|int, mixed>
Parameters
- $folderIdentifier : string
- $newName : string
Tags
Return values
array<string|int, mixed> —A map of old to new file identifiers of all affected files and folders
replaceFile()
Replaces the contents (and file-specific metadata) of a file object with a local file.
public
replaceFile(string $fileIdentifier, string $localFilePath) : bool
Parameters
- $fileIdentifier : string
- $localFilePath : string
Tags
Return values
bool —TRUE if the operation succeeded
sanitizeFileName()
Returns a string where any character not matching [.a-zA-Z0-9_-] is substituted by '_' Trailing dots are removed
public
sanitizeFileName(string $fileName[, string $charset = 'utf-8' ]) : string
Previously in \TYPO3\CMS\Core\Utility\File\BasicFileUtility::cleanFileName()
Parameters
- $fileName : string
-
Input string, typically the body of a fileName
- $charset : string = 'utf-8'
-
Charset of the a fileName (defaults to utf-8)
Tags
Return values
string —Output string with any characters not matching [.a-zA-Z0-9_-] is substituted by '_' and trailing dots removed
setFileContents()
Sets the contents of a file to the specified value.
public
setFileContents(string $fileIdentifier, string $contents) : int
Parameters
- $fileIdentifier : string
- $contents : string
Tags
Return values
int —The number of bytes written to the file
setStorageUid()
Sets the storage uid the driver belongs to
public
setStorageUid(int $storageUid) : mixed
Parameters
- $storageUid : int
streamFile()
Stream file using a PSR-7 Response object.
public
streamFile(string $identifier, array<string|int, mixed> $properties) : ResponseInterface
Parameters
- $identifier : string
- $properties : array<string|int, mixed>
Return values
ResponseInterfaceapplyFilterMethodsToDirectoryItem()
Applies a set of filter methods to a file name to find out if it should be used or not. This is e.g. used by directory listings.
protected
applyFilterMethodsToDirectoryItem(array<string|int, mixed> $filterMethods, string $itemName, string $itemIdentifier, string $parentIdentifier) : bool
Parameters
- $filterMethods : array<string|int, mixed>
-
The filter methods to use
- $itemName : string
- $itemIdentifier : string
- $parentIdentifier : string
Tags
Return values
boolcalculateBasePath()
Calculates the absolute path to this drivers storage location.
protected
calculateBasePath(array<string|int, mixed> $configuration) : string
Parameters
- $configuration : array<string|int, mixed>
Tags
Return values
stringcanonicalizeAndCheckFileIdentifier()
Makes sure the Path given as parameter is valid
protected
canonicalizeAndCheckFileIdentifier(string $fileIdentifier) : string
Parameters
- $fileIdentifier : string
-
The file path (including the file name!)
Tags
Return values
stringcanonicalizeAndCheckFilePath()
Makes sure the Path given as parameter is valid
protected
canonicalizeAndCheckFilePath(string $filePath) : string
Parameters
- $filePath : string
-
The file path (including the file name!)
Tags
Return values
stringcanonicalizeAndCheckFolderIdentifier()
Makes sure the Path given as parameter is valid
protected
canonicalizeAndCheckFolderIdentifier(string $folderPath) : string
Parameters
- $folderPath : string
-
The file path (including the file name!)
Return values
stringcopyFileToTemporaryPath()
Copies a file to a temporary path and returns that path.
protected
copyFileToTemporaryPath(string $fileIdentifier) : string
Parameters
- $fileIdentifier : string
Tags
Return values
string —The temporary path
createIdentifierMap()
Creates a map of old and new file/folder identifiers after renaming or moving a folder. The old identifier is used as the key, the new one as the value.
protected
createIdentifierMap(array<string|int, mixed> $filesAndFolders, string $sourceFolderIdentifier, string $targetFolderIdentifier) : array<string|int, mixed>
Parameters
- $filesAndFolders : array<string|int, mixed>
- $sourceFolderIdentifier : string
- $targetFolderIdentifier : string
Tags
Return values
array<string|int, mixed>determineBaseUrl()
Determines the base URL for this driver, from the configuration or the TypoScript frontend object
protected
determineBaseUrl() : mixed
extractFileInformation()
Extracts information about a file from the filesystem.
protected
extractFileInformation(string $filePath, string $containerPath[, array<string|int, mixed> $propertiesToExtract = [] ]) : array<string|int, mixed>
Parameters
- $filePath : string
-
The absolute path to the file
- $containerPath : string
-
The relative path to the file's container
- $propertiesToExtract : array<string|int, mixed> = []
-
array of properties which should be returned, if empty all will be extracted
Return values
array<string|int, mixed>getAbsoluteBasePath()
Returns the absolute path of the folder this driver operates on.
protected
getAbsoluteBasePath() : string
Return values
stringgetAbsolutePath()
Returns the absolute path of a file or folder.
protected
getAbsolutePath(string $fileIdentifier) : string
Parameters
- $fileIdentifier : string
Tags
Return values
stringgetDirectoryItemList()
Generic wrapper for extracting a list of items from a path.
protected
getDirectoryItemList(string $folderIdentifier, int $start, int $numberOfItems, array<string|int, mixed> $filterMethods[, bool $includeFiles = true ][, bool $includeDirs = true ][, bool $recursive = false ][, string $sort = '' ][, bool $sortRev = false ]) : array<string|int, string>
Parameters
- $folderIdentifier : string
- $start : int
-
The position to start the listing; if not set, start from the beginning
- $numberOfItems : int
-
The number of items to list; if set to zero, all items are returned
- $filterMethods : array<string|int, mixed>
-
The filter methods used to filter the directory items
- $includeFiles : bool = true
- $includeDirs : bool = true
- $recursive : bool = false
- $sort : string = ''
-
Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
- $sortRev : bool = false
-
TRUE to indicate reverse sorting (last to first)
Tags
Return values
array<string|int, string> —folder identifiers (where key and value are identical, but int-like identifiers will get converted to int array keys)
getRecycleDirectory()
Get the path of the nearest recycler folder of a given $path.
protected
getRecycleDirectory(string $path) : string
Return an empty string if there is no recycler folder available.
Parameters
- $path : string
Return values
stringgetTemporaryPathForFile()
Returns a temporary path for a given file, including the file extension.
protected
getTemporaryPathForFile(string $fileIdentifier) : non-empty-string
Parameters
- $fileIdentifier : string
Return values
non-empty-stringisAllowedAbsolutePath()
Wrapper for `GeneralUtility::isAllowedAbsPath`, which implicitly invokes `GeneralUtility::validPathStr` (like in `parent::isPathValid`).
protected
isAllowedAbsolutePath(string $path) : bool
Parameters
- $path : string
Return values
boolisPathValid()
Wrapper for \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr()
protected
isPathValid(string $theFile) : bool
Parameters
- $theFile : string
-
Filepath to evaluate
Tags
Return values
bool —TRUE if no '/', '..' or '' is in the $theFile
isValidFilename()
Checks a fileName for validity. This could be overridden in concrete drivers if they have different file naming rules.
protected
isValidFilename(string $fileName) : bool
Parameters
- $fileName : string
Return values
bool —TRUE if file name is valid
recycleFileOrFolder()
Moves a file or folder to the given directory, renaming the source in the process if a file or folder of the same name already exists in the target path.
protected
recycleFileOrFolder(string $filePath, string $recycleDirectory) : bool
Parameters
- $filePath : string
- $recycleDirectory : string
Return values
boolretrieveFileAndFoldersInPath()
Returns a list with the names of all files and folders in a path, optionally recursive.
protected
retrieveFileAndFoldersInPath(string $path[, bool $recursive = false ][, bool $includeFiles = true ][, bool $includeDirs = true ][, string $sort = '' ][, bool $sortRev = false ]) : array<string|int, mixed>
Parameters
- $path : string
-
The absolute path
- $recursive : bool = false
-
If TRUE, recursively fetches files and folders
- $includeFiles : bool = true
- $includeDirs : bool = true
- $sort : string = ''
-
Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
- $sortRev : bool = false
-
TRUE to indicate reverse sorting (last to first)
Return values
array<string|int, mixed>sortDirectoryEntries()
Sort the directory entries by a certain key
protected
sortDirectoryEntries(array<string|int, mixed> $directoryEntries[, string $sort = '' ][, bool $sortRev = false ]) : array<string|int, mixed>
Parameters
- $directoryEntries : array<string|int, mixed>
-
Array of directory entry arrays from retrieveFileAndFoldersInPath()
- $sort : string = ''
-
Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
- $sortRev : bool = false
-
TRUE to indicate reverse sorting (last to first)
Return values
array<string|int, mixed> —Sorted entries. Content of the keys is undefined.