1<?php
2
3namespace Sabre\DAV\FS;
4
5use Sabre\DAV;
6use Sabre\HTTP\URLUtil;
7
8/**
9 * Base node-class
10 *
11 * The node class implements the method used by both the File and the Directory classes
12 *
13 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
14 * @author Evert Pot (http://evertpot.com/)
15 * @license http://sabre.io/license/ Modified BSD License
16 */
17abstract class Node implements DAV\INode {
18
19    /**
20     * The path to the current node
21     *
22     * @var string
23     */
24    protected $path;
25
26    /**
27     * Sets up the node, expects a full path name
28     *
29     * @param string $path
30     */
31    function __construct($path) {
32
33        $this->path = $path;
34
35    }
36
37
38
39    /**
40     * Returns the name of the node
41     *
42     * @return string
43     */
44    function getName() {
45
46        list(, $name) = URLUtil::splitPath($this->path);
47        return $name;
48
49    }
50
51    /**
52     * Renames the node
53     *
54     * @param string $name The new name
55     * @return void
56     */
57    function setName($name) {
58
59        list($parentPath, ) = URLUtil::splitPath($this->path);
60        list(, $newName) = URLUtil::splitPath($name);
61
62        $newPath = $parentPath . '/' . $newName;
63        rename($this->path, $newPath);
64
65        $this->path = $newPath;
66
67    }
68
69    /**
70     * Returns the last modification time, as a unix timestamp
71     *
72     * @return int
73     */
74    function getLastModified() {
75
76        return filemtime($this->path);
77
78    }
79
80}
81