_client = $client; $this->_id = null !== $id ? (string) $id : null; $this->_parentId = property_exists($options, 'parent_id') ? (string) $options->parent_id : null; $this->_name = property_exists($options, 'name') ? (string) $options->name : null; $this->_description = property_exists($options, 'description') ? (string) $options->description : null; $this->_size = property_exists($options, 'size') ? (int) $options->size : null; $this->_createdTime = property_exists($options, 'created_time') ? strtotime($options->created_time) : null; $this->_updatedTime = property_exists($options, 'updated_time') ? strtotime($options->updated_time) : null; } /** * Determines whether the OneDrive object referenced by this Object instance * is a folder. * * @return (bool) true if the OneDrive object referenced by this Object * instance is a folder, false otherwise. */ public function isFolder() { return false; } /** * Fetches the properties of the OneDrive object referenced by this Object * instance. Some properties are cached for faster subsequent access. * * @return (array) The properties of the OneDrive object referenced by this * Object instance. */ public function fetchProperties() { $result = $this->_client->fetchProperties($this->_id); $this->_parentId = '' != $result->parentReference['id'] ? (string) $result->parentReference['id'] : null; $this->_name = $result->name; $this->_description = '' != $result->description ? (string) $result->description : null; $this->_size = (int) $result->size; $this->_createdTime = strtotime($result->createdDateTime); $this->_updatedTime = strtotime($result->lastModifiedDateTime); return $result; } /** * Gets the unique ID of the OneDrive object referenced by this Object * instance. * * @return (string) The unique ID of the OneDrive object referenced by this * Object instance. */ public function getId() { return $this->_id; } /** * Gets the unique ID of the parent folder of the OneDrive object referenced * by this Object instance. * * @return (string) The unique ID of the OneDrive folder containing the object * referenced by this Object instance. */ public function getParentId() { if (null === $this->_parentId) { $this->fetchProperties(); } return $this->_parentId; } /** * Gets the name of the OneDrive object referenced by this Object instance. * * @return (string) The name of the OneDrive object referenced by this Object * instance. */ public function getName() { if (null === $this->_name) { $this->fetchProperties(); } return $this->_name; } /** * Gets the description of the OneDrive object referenced by this Object * instance. * * @return (string) The description of the OneDrive object referenced by this * Object instance. */ public function getDescription() { if (null === $this->_description) { $this->fetchProperties(); } return $this->_description; } /** * Gets the size of the OneDrive object referenced by this Object instance. * * @return (int) The size of the OneDrive object referenced by this Object * instance. */ public function getSize() { if (null === $this->_size) { $this->fetchProperties(); } return $this->_size; } /** * Gets the creation time of the OneDrive object referenced by this Object * instance. * * @return (int) The creation time of the object referenced by this Object * instance, in seconds since UNIX epoch. */ public function getCreatedTime() { if (null === $this->_createdTime) { $this->fetchProperties(); } return $this->_createdTime; } /** * Gets the last modification time of the OneDrive object referenced by this * Object instance. * * @return (int) The last modification time of the object referenced by this * Object instance, in seconds since UNIX epoch. */ public function getUpdatedTime() { if (null === $this->_updatedTime) { $this->fetchProperties(); } return $this->_updatedTime; } /** * Moves the OneDrive object referenced by this Object instance into another * OneDrive folder. * * @param (null|string) The unique ID of the OneDrive folder into which to * move the OneDrive object referenced by this Object instance, or * null to move it to the OneDrive root folder. Default: null. */ public function move($destinationId = null) { $this->_client->moveObject($this->_id, $destinationId); } }