1<?php 2 3namespace Sabre\DAV; 4 5/** 6 * The ICollection Interface 7 * 8 * This interface should be implemented by each class that represents a collection 9 * 10 * @copyright Copyright (C) fruux GmbH (https://fruux.com/) 11 * @author Evert Pot (http://evertpot.com/) 12 * @license http://sabre.io/license/ Modified BSD License 13 */ 14interface ICollection extends INode { 15 16 /** 17 * Creates a new file in the directory 18 * 19 * Data will either be supplied as a stream resource, or in certain cases 20 * as a string. Keep in mind that you may have to support either. 21 * 22 * After successful creation of the file, you may choose to return the ETag 23 * of the new file here. 24 * 25 * The returned ETag must be surrounded by double-quotes (The quotes should 26 * be part of the actual string). 27 * 28 * If you cannot accurately determine the ETag, you should not return it. 29 * If you don't store the file exactly as-is (you're transforming it 30 * somehow) you should also not return an ETag. 31 * 32 * This means that if a subsequent GET to this new file does not exactly 33 * return the same contents of what was submitted here, you are strongly 34 * recommended to omit the ETag. 35 * 36 * @param string $name Name of the file 37 * @param resource|string $data Initial payload 38 * @return null|string 39 */ 40 function createFile($name, $data = null); 41 42 /** 43 * Creates a new subdirectory 44 * 45 * @param string $name 46 * @return void 47 */ 48 function createDirectory($name); 49 50 /** 51 * Returns a specific child node, referenced by its name 52 * 53 * This method must throw Sabre\DAV\Exception\NotFound if the node does not 54 * exist. 55 * 56 * @param string $name 57 * @return INode 58 */ 59 function getChild($name); 60 61 /** 62 * Returns an array with all the child nodes 63 * 64 * @return INode[] 65 */ 66 function getChildren(); 67 68 /** 69 * Checks if a child-node with the specified name exists 70 * 71 * @param string $name 72 * @return bool 73 */ 74 function childExists($name); 75 76} 77