Horde_Vfs_Mongo
extends Horde_Vfs_Base
in package
MongoDB driver for VFS storage backend.
Tags
Table of Contents
- FNAME = 'vfile'
- FOLDER_OWNER = 'owner'
- FOLDER_PATH = 'path'
- FOLDER_TS = 'ts'
- MD = 'metadata'
- OWNER = 'owner'
- PATH = 'vpath'
- $_credentials : array<string|int, mixed>
- List of additional credentials required for this VFS backend (example: For FTP, we need a username and password to log in to the server with).
- $_features : array<string|int, mixed>
- List of features that the VFS driver supports.
- $_files : MongoGridFS
- The MongoDB GridFS object for the VFS data.
- $_folders : MongoGridCollection
- The MongoDB collection for the VFS folder data.
- $_params : array<string|int, mixed>
- Hash containing connection parameters.
- $_permissions : array<string|int, mixed>
- List of permissions and if they can be changed in this VFS backend.
- $_vfsSize : int
- The current size, in bytes, of the VFS tree.
- __construct() : mixed
- Constructor.
- autocreatePath() : mixed
- Automatically creates any necessary parent directories in the specified $path.
- changePermissions() : mixed
- Changes permissions for an item on the VFS.
- checkCredentials() : mixed
- Checks the credentials that we have by calling _connect(), to see if there is a valid login.
- copy() : mixed
- Copies a file through the backend.
- createFolder() : mixed
- Creates a folder in the VFS.
- delete() : mixed
- Alias to deleteFile()
- deleteFile() : mixed
- Deletes a file from the VFS.
- deleteFolder() : mixed
- Deletes a folder from the VFS.
- emptyFolder() : mixed
- Recursively remove all files and subfolders from the given folder.
- exists() : bool
- Returns if a given file or folder exists in a folder.
- gc() : mixed
- getCurrentDirectory() : string
- Returns the current working directory of the VFS backend.
- getFolderSize() : int
- Returns the size of a folder.
- getModifiablePermissions() : array<string|int, mixed>
- Returns an array specifying what permissions are changeable for this VFS implementation.
- getParam() : mixed
- Returns configuration parameters.
- getQuota() : mixed
- Get quota information (used/allocated), in bytes.
- getRequiredCredentials() : array<string|int, mixed>
- Returns the list of additional credentials required, if any.
- getVFSSize() : int
- Returns the size of the VFS item.
- hasFeature() : bool
- Returns whether the drivers supports a certain feature.
- isFolder() : bool
- Checks if a given item is a folder.
- listFolder() : array<string|int, mixed>
- Returns a file list of the directory passed in.
- move() : mixed
- Moves a file through the backend.
- read() : string
- Retrieves a file from the VFS.
- readByteRange() : string
- Retrieves a part of a file from the VFS. Particularly useful when reading large files which would exceed the PHP memory limits if they were stored in a string.
- readFile() : string
- Retrieves a file from the VFS as an on-disk local file.
- readStream() : resource
- Open a read-only stream to a file in the VFS.
- rename() : mixed
- Renames a file in the VFS.
- setParams() : mixed
- Sets configuration parameters.
- setQuota() : mixed
- Sets the VFS quota limit.
- setQuotaRoot() : mixed
- Sets the VFS quota root.
- size() : int
- Retrieves the size of a file from the VFS.
- write() : mixed
- Stores a file in the VFS.
- writeData() : mixed
- Stores a file in the VFS from raw data.
- _checkDestination() : mixed
- Checks whether a source and destination directory are the same.
- _checkQuotaDelete() : mixed
- Checks the quota when preparing to delete data.
- _checkQuotaWrite() : mixed
- Checks the quota when preparing to write data.
- _connect() : mixed
- TODO
- _convertPath() : string
- Converts the path name from regular filesystem form to the internal format needed to access the file in the database.
- _copyRecursive() : mixed
- Recursively copies a directory through the backend.
- _ensureSeekable() : mixed
- _filterMatch() : bool
- Returns whether or not a file or directory name matches an filter element.
- _getDataSize() : int
- Return the size of $data.
- _getFile() : mixed
- _getPath() : mixed
- Returns the full path of an item.
- _isFolder() : mixed
- _listFolder() : array<string|int, mixed>
- Returns an an unsorted file list of the specified directory.
- _mdKey() : mixed
- _write() : mixed
Constants
FNAME
public
mixed
FNAME
= 'vfile'
FOLDER_OWNER
public
mixed
FOLDER_OWNER
= 'owner'
FOLDER_PATH
public
mixed
FOLDER_PATH
= 'path'
FOLDER_TS
public
mixed
FOLDER_TS
= 'ts'
MD
public
mixed
MD
= 'metadata'
OWNER
public
mixed
OWNER
= 'owner'
PATH
public
mixed
PATH
= 'vpath'
Properties
$_credentials
List of additional credentials required for this VFS backend (example: For FTP, we need a username and password to log in to the server with).
protected
array<string|int, mixed>
$_credentials
= array()
$_features
List of features that the VFS driver supports.
protected
array<string|int, mixed>
$_features
= array('readByteRange' => \false)
$_files
The MongoDB GridFS object for the VFS data.
protected
MongoGridFS
$_files
$_folders
The MongoDB collection for the VFS folder data.
protected
MongoGridCollection
$_folders
$_params
Hash containing connection parameters.
protected
array<string|int, mixed>
$_params
= array()
$_permissions
List of permissions and if they can be changed in this VFS backend.
protected
array<string|int, mixed>
$_permissions
= array('owner' => array('read' => \false, 'write' => \false, 'execute' => \false), 'group' => array('read' => \false, 'write' => \false, 'execute' => \false), 'all' => array('read' => \false, 'write' => \false, 'execute' => \false))
$_vfsSize
The current size, in bytes, of the VFS tree.
protected
int
$_vfsSize
= \null
Methods
__construct()
Constructor.
public
__construct([array<string|int, mixed> $params = array() ]) : mixed
Parameters
- $params : array<string|int, mixed> = array()
-
Additional parameters:
- collection: (string) The collection name for the folders data. - gridfs: (string) The GridFS name. - mongo_db: [REQUIRED] (Horde_Mongo_Client) A MongoDB client object.
Return values
mixed —autocreatePath()
Automatically creates any necessary parent directories in the specified $path.
public
autocreatePath(string $path) : mixed
Parameters
- $path : string
-
The VFS path to autocreate.
Tags
Return values
mixed —changePermissions()
Changes permissions for an item on the VFS.
public
changePermissions(string $path, string $name, string $permission) : mixed
Parameters
- $path : string
-
The parent folder of the item.
- $name : string
-
The name of the item.
- $permission : string
-
The permission to set.
Tags
Return values
mixed —checkCredentials()
Checks the credentials that we have by calling _connect(), to see if there is a valid login.
public
checkCredentials() : mixed
Tags
Return values
mixed —copy()
Copies a file through the backend.
public
copy(string $path, string $name, string $dest[, bool $autocreate = false ]) : mixed
Parameters
- $path : string
-
The path of the original file.
- $name : string
-
The name of the original file.
- $dest : string
-
The name of the destination directory.
- $autocreate : bool = false
-
Automatically create directories?
Tags
Return values
mixed —createFolder()
Creates a folder in the VFS.
public
createFolder(mixed $path, mixed $name) : mixed
Parameters
- $path : mixed
-
The parent folder.
- $name : mixed
-
The name of the new folder.
Return values
mixed —delete()
Alias to deleteFile()
public
delete(mixed $path, mixed $name) : mixed
Parameters
- $path : mixed
- $name : mixed
Return values
mixed —deleteFile()
Deletes a file from the VFS.
public
deleteFile(mixed $path, mixed $name) : mixed
Parameters
- $path : mixed
-
The path to delete the file from.
- $name : mixed
-
The filename to delete.
Return values
mixed —deleteFolder()
Deletes a folder from the VFS.
public
deleteFolder(mixed $path, mixed $name[, mixed $recursive = false ]) : mixed
Parameters
- $path : mixed
-
The parent folder.
- $name : mixed
-
The name of the folder to delete.
- $recursive : mixed = false
-
Force a recursive delete?
Return values
mixed —emptyFolder()
Recursively remove all files and subfolders from the given folder.
public
emptyFolder(mixed $path) : mixed
Parameters
- $path : mixed
-
The path of the folder to empty.
Return values
mixed —exists()
Returns if a given file or folder exists in a folder.
public
exists(string $path, string $name) : bool
Parameters
- $path : string
-
The path to the folder.
- $name : string
-
The file or folder name.
Return values
bool —True if it exists, false otherwise.
gc()
public
gc(mixed $path[, mixed $secs = 345600 ]) : mixed
Parameters
- $path : mixed
- $secs : mixed = 345600
Return values
mixed —getCurrentDirectory()
Returns the current working directory of the VFS backend.
public
getCurrentDirectory() : string
Return values
string —The current working directory.
getFolderSize()
Returns the size of a folder.
public
getFolderSize([mixed $path = null ]) : int
Parameters
- $path : mixed = null
-
The path of the folder.
Return values
int —The size of the folder, in bytes.
getModifiablePermissions()
Returns an array specifying what permissions are changeable for this VFS implementation.
public
getModifiablePermissions() : array<string|int, mixed>
Return values
array<string|int, mixed> —Changeable permisions.
getParam()
Returns configuration parameters.
public
getParam(string $name) : mixed
Parameters
- $name : string
-
The parameter to return.
Return values
mixed —The parameter value or null if it doesn't exist.
getQuota()
Get quota information (used/allocated), in bytes.
public
getQuota() : mixed
Tags
Return values
mixed —An associative array.
'limit' = Maximum quota allowed 'usage' = Currently used portion of quota (in bytes)
getRequiredCredentials()
Returns the list of additional credentials required, if any.
public
getRequiredCredentials() : array<string|int, mixed>
Return values
array<string|int, mixed> —Credential list.
getVFSSize()
Returns the size of the VFS item.
public
getVFSSize() : int
Return values
int —The size, in bytes, of the VFS item.
hasFeature()
Returns whether the drivers supports a certain feature.
public
hasFeature(string $feature) : bool
Parameters
Return values
bool —True if the feature is supported.
isFolder()
Checks if a given item is a folder.
public
isFolder(mixed $path, mixed $name) : bool
Parameters
- $path : mixed
-
The parent folder.
- $name : mixed
-
The item name.
Return values
bool —True if it is a folder, false otherwise.
listFolder()
Returns a file list of the directory passed in.
public
listFolder(string $path[, string|array<string|int, mixed> $filter = null ][, bool $dotfiles = true ][, bool $dironly = false ][, bool $recursive = false ]) : array<string|int, mixed>
Parameters
- $path : string
-
The path of the directory.
- $filter : string|array<string|int, mixed> = null
-
Regular expression(s) to filter file/directory name on.
- $dotfiles : bool = true
-
Show dotfiles?
- $dironly : bool = false
-
Show only directories?
- $recursive : bool = false
-
Return all directory levels recursively?
Tags
Return values
array<string|int, mixed> —File list.
move()
Moves a file through the backend.
public
move(string $path, string $name, string $dest[, bool $autocreate = false ]) : mixed
Parameters
- $path : string
-
The path of the original file.
- $name : string
-
The name of the original file.
- $dest : string
-
The destination file name.
- $autocreate : bool = false
-
Automatically create directories?
Tags
Return values
mixed —read()
Retrieves a file from the VFS.
public
read(mixed $path, mixed $name) : string
Parameters
- $path : mixed
-
The pathname to the file.
- $name : mixed
-
The filename to retrieve.
Return values
string —The file data.
readByteRange()
Retrieves a part of a file from the VFS. Particularly useful when reading large files which would exceed the PHP memory limits if they were stored in a string.
public
readByteRange(mixed $path, mixed $name, mixed &$offset, mixed $length, mixed &$remaining) : string
Parameters
- $path : mixed
-
The pathname to the file.
- $name : mixed
-
The filename to retrieve.
- $offset : mixed
-
The offset of the part. (The new offset will be stored in here).
- $length : mixed
-
The length of the part. If the length = -1, the whole part after the offset is retrieved. If more bytes are given as exists after the given offset. Only the available bytes are read.
- $remaining : mixed
-
The bytes that are left, after the part that is retrieved.
Return values
string —The file data.
readFile()
Retrieves a file from the VFS as an on-disk local file.
public
readFile(string $path, string $name) : string
This function provides a file on local disk with the data of a VFS file in it. This file cannot be modified! The behavior if you do modify it is undefined. It will be removed at the end of the request.
Parameters
- $path : string
-
The pathname to the file.
- $name : string
-
The filename to retrieve.
Tags
Return values
string —A local filename.
readStream()
Open a read-only stream to a file in the VFS.
public
readStream(string $path, string $name) : resource
Parameters
- $path : string
-
The pathname to the file.
- $name : string
-
The filename to retrieve.
Tags
Return values
resource —The stream.
rename()
Renames a file in the VFS.
public
rename(mixed $oldpath, mixed $oldname, mixed $newpath, mixed $newname) : mixed
Parameters
- $oldpath : mixed
-
The old path to the file.
- $oldname : mixed
-
The old filename.
- $newpath : mixed
-
The new path of the file.
- $newname : mixed
-
The new filename.
Return values
mixed —setParams()
Sets configuration parameters.
public
setParams([array<string|int, mixed> $params = array() ]) : mixed
Parameters
- $params : array<string|int, mixed> = array()
-
An associative array with parameter names as keys.
Return values
mixed —setQuota()
Sets the VFS quota limit.
public
setQuota(int $quota[, int $metric = Horde_Vfs::QUOTA_METRIC_BYTE ]) : mixed
Parameters
- $quota : int
-
The limit to apply.
- $metric : int = Horde_Vfs::QUOTA_METRIC_BYTE
-
The metric to multiply the quota into.
Return values
mixed —setQuotaRoot()
Sets the VFS quota root.
public
setQuotaRoot(string $dir) : mixed
Parameters
- $dir : string
-
The root directory for the quota determination.
Return values
mixed —size()
Retrieves the size of a file from the VFS.
public
size(mixed $path, mixed $name) : int
Parameters
- $path : mixed
-
The pathname to the file.
- $name : mixed
-
The filename to retrieve.
Return values
int —The file size.
write()
Stores a file in the VFS.
public
write(mixed $path, mixed $name, mixed $tmpFile[, mixed $autocreate = false ]) : mixed
Parameters
- $path : mixed
-
The path to store the file in.
- $name : mixed
-
The filename to use.
- $tmpFile : mixed
-
The temporary file containing the data to be stored.
- $autocreate : mixed = false
-
Automatically create directories?
Return values
mixed —writeData()
Stores a file in the VFS from raw data.
public
writeData(mixed $path, mixed $name, mixed $data[, mixed $autocreate = false ]) : mixed
Parameters
- $path : mixed
-
The path to store the file in.
- $name : mixed
-
The filename to use.
- $data : mixed
-
The data as a string or stream resource. Resources allowed @since 2.4.0
- $autocreate : mixed = false
-
Automatically create directories?
Return values
mixed —_checkDestination()
Checks whether a source and destination directory are the same.
protected
_checkDestination(string $path, string $dest) : mixed
Parameters
- $path : string
-
A source path.
- $dest : string
-
A destination path.
Tags
Return values
mixed —_checkQuotaDelete()
Checks the quota when preparing to delete data.
protected
_checkQuotaDelete(string $path, string $name) : mixed
Parameters
- $path : string
-
The path the file is located in.
- $name : string
-
The filename.
Tags
Return values
mixed —_checkQuotaWrite()
Checks the quota when preparing to write data.
protected
_checkQuotaWrite(string $mode, string $data[, string $path = null ][, string $name = null ]) : mixed
Parameters
- $mode : string
-
Either 'string' or 'file'. If 'string', $data is the data to be written. If 'file', $data is the filename containing the data to be written.
- $data : string
-
Either the data or the filename to the data.
- $path : string = null
-
The path the file is located in.
- $name : string = null
-
The filename.
Tags
Return values
mixed —_connect()
TODO
protected
_connect() : mixed
Tags
Return values
mixed —_convertPath()
Converts the path name from regular filesystem form to the internal format needed to access the file in the database.
protected
_convertPath(string $path) : string
Namely, we will treat '/' as a base directory as this is pretty much the standard way to access base directories over most filesystems.
Parameters
- $path : string
-
A VFS path.
Return values
string —The path with any surrouding slashes stripped off.
_copyRecursive()
Recursively copies a directory through the backend.
protected
_copyRecursive(string $path, string $name, string $dest) : mixed
Parameters
- $path : string
-
The path of the original file.
- $name : string
-
The name of the original file.
- $dest : string
-
The name of the destination directory.
Tags
Return values
mixed —_ensureSeekable()
protected
_ensureSeekable(mixed $stream) : mixed
Parameters
- $stream : mixed
Return values
mixed —_filterMatch()
Returns whether or not a file or directory name matches an filter element.
protected
_filterMatch(string|array<string|int, mixed> $filter, string $filename) : bool
Parameters
- $filter : string|array<string|int, mixed>
-
Regular expression(s) to build the filter from.
- $filename : string
-
String containing the file/directory name to match.
Return values
bool —True on match, false on no match.
_getDataSize()
Return the size of $data.
protected
_getDataSize(string|resource $data) : int
Parameters
- $data : string|resource
-
The data.
Return values
int —The data length.
_getFile()
protected
_getFile(mixed $path, mixed $name) : mixed
Parameters
- $path : mixed
- $name : mixed
Return values
mixed —_getPath()
Returns the full path of an item.
protected
_getPath(string $path, string $name) : mixed
Parameters
- $path : string
-
The path of directory of the item.
- $name : string
-
The name of the item.
Return values
mixed —Full path when $path isset and just $name when not set.
_isFolder()
protected
_isFolder(mixed $path) : mixed
Parameters
- $path : mixed
Return values
mixed —_listFolder()
Returns an an unsorted file list of the specified directory.
protected
_listFolder(string $path[, mixed $filter = null ][, bool $dotfiles = true ][, bool $dironly = false ]) : array<string|int, mixed>
Parameters
- $path : string
-
The path of the directory.
- $filter : mixed = null
-
String/hash to filter file/dirname on.
- $dotfiles : bool = true
-
Show dotfiles?
- $dironly : bool = false
-
Show only directories?
Tags
Return values
array<string|int, mixed> —File list.
_mdKey()
protected
_mdKey(mixed $key) : mixed
Parameters
- $key : mixed
Return values
mixed —_write()
protected
_write(mixed $type, mixed $path, mixed $name, mixed $data, mixed $autocreate) : mixed
Parameters
- $type : mixed
- $path : mixed
- $name : mixed
- $data : mixed
- $autocreate : mixed