IMoveTarget
extends
ICollection
in
By implementing this interface, a collection can effectively say "other nodes may be moved into this collection".
The benefit of this, is that sabre/dav will by default perform a move, by transferring an entire directory tree, copying every collection, and deleting every item.
If a backend supports a better optimized move operation, this can trigger some huge speed gains.
Tags
Table of Contents
- childExists() : bool
- Checks if a child-node with the specified name exists.
- createDirectory() : mixed
- Creates a new subdirectory.
- createFile() : string|null
- Creates a new file in the directory.
- delete() : mixed
- Deleted the current node.
- getChild() : INode
- Returns a specific child node, referenced by its name.
- getChildren() : array<string|int, INode>
- Returns an array with all the child nodes.
- getLastModified() : int|null
- Returns the last modification time, as a unix timestamp. Return null if the information is not available.
- getName() : string
- Returns the name of the node.
- moveInto() : bool
- Moves a node into this collection.
- setName() : mixed
- Renames the node.
Methods
childExists()
Checks if a child-node with the specified name exists.
public
childExists(string $name) : bool
Parameters
- $name : string
Return values
bool —createDirectory()
Creates a new subdirectory.
public
createDirectory(string $name) : mixed
Parameters
- $name : string
Return values
mixed —createFile()
Creates a new file in the directory.
public
createFile(string $name[, resource|string $data = null ]) : string|null
Data will either be supplied as a stream resource, or in certain cases as a string. Keep in mind that you may have to support either.
After successful creation of the file, you may choose to return the ETag of the new file here.
The returned ETag must be surrounded by double-quotes (The quotes should be part of the actual string).
If you cannot accurately determine the ETag, you should not return it. If you don't store the file exactly as-is (you're transforming it somehow) you should also not return an ETag.
This means that if a subsequent GET to this new file does not exactly return the same contents of what was submitted here, you are strongly recommended to omit the ETag.
Parameters
- $name : string
-
Name of the file
- $data : resource|string = null
-
Initial payload
Return values
string|null —delete()
Deleted the current node.
public
delete() : mixed
Return values
mixed —getChild()
Returns a specific child node, referenced by its name.
public
getChild(string $name) : INode
This method must throw Sabre\DAV\Exception\NotFound if the node does not exist.
Parameters
- $name : string
Return values
INode —getChildren()
Returns an array with all the child nodes.
public
getChildren() : array<string|int, INode>
Return values
array<string|int, INode> —getLastModified()
Returns the last modification time, as a unix timestamp. Return null if the information is not available.
public
getLastModified() : int|null
Return values
int|null —getName()
Returns the name of the node.
public
getName() : string
This is used to generate the url.
Return values
string —moveInto()
Moves a node into this collection.
public
moveInto(string $targetName, string $sourcePath, INode $sourceNode) : bool
It is up to the implementors to:
- Create the new resource.
- Remove the old resource.
- Transfer any properties or other data.
Generally you should make very sure that your collection can easily move the move.
If you don't, just return false, which will trigger sabre/dav to handle the move itself. If you return true from this function, the assumption is that the move was successful.
Parameters
- $targetName : string
-
new local file/collection name
- $sourcePath : string
-
Full path to source node
- $sourceNode : INode
-
Source node itself
Return values
bool —setName()
Renames the node.
public
setName(string $name) : mixed
Parameters
- $name : string
-
The new name