_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->_source = property_exists($options, 'source') ? (string) $options->source : 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 drive item referenced by this DriveItem * instance is a folder. * * @return bool true if the OneDrive drive item referenced by this DriveItem * instance is a folder, false otherwise. */ public function isFolder() { return false; } /** * Fetches the properties of the OneDrive drive item referenced by this * DriveItem instance. Some properties are cached for faster subsequent * access. * * @return array The properties of the OneDrive drive item referenced by * this DriveItem instance. */ public function fetchProperties() { $result = $this->_client->fetchProperties($this->_id); $this->_parentId = '' != $result->parent_id ? (string) $result->parent_id : null; $this->_name = $result->name; $this->_description = '' != $result->description ? (string) $result->description : null; $this->_size = (int) $result->size; /** @todo Handle volatile existence (eg. present only for files). */ $this->_source = (string) $result->source; $this->_createdTime = strtotime($result->created_time); $this->_updatedTime = strtotime($result->updated_time); return $result; } /** * Gets the unique ID of the OneDrive drive item referenced by this * DriveItem instance. * * @return string The unique ID of the OneDrive drive item referenced by * this DriveItem instance. */ public function getId() { return $this->_id; } /** * Gets the unique ID of the parent folder of the OneDrive drive item * referenced by this DriveItem instance. * * @return string The unique ID of the OneDrive folder containing the drive * item referenced by this DriveItem instance. */ public function getParentId() { if (null === $this->_parentId) { $this->fetchProperties(); } return $this->_parentId; } /** * Gets the name of the OneDrive drive item referenced by this DriveItem * instance. * * @return string The name of the OneDrive drive item referenced by this * DriveItem instance. */ public function getName() { if (null === $this->_name) { $this->fetchProperties(); } return $this->_name; } /** * Gets the description of the OneDrive drive item referenced by this * DriveItem instance. * * @return string The description of the OneDrive drive item referenced by * this DriveItem instance. */ public function getDescription() { if (null === $this->_description) { $this->fetchProperties(); } return $this->_description; } /** * Gets the size of the OneDrive drive item referenced by this DriveItem * instance. * * @return int The size of the OneDrive drive item referenced by this * DriveItem instance. */ public function getSize() { if (null === $this->_size) { $this->fetchProperties(); } return $this->_size; } /** * Gets the source link of the OneDrive drive item referenced by this * DriveItem instance. * * @return string The source link of the OneDrive drive item referenced by * this DriveItem instance. */ public function getSource() { if (null === $this->_source) { $this->fetchProperties(); } return $this->_source; } /** * Gets the creation time of the OneDrive drive item referenced by this * DriveItem instance. * * @return int The creation time of the drive item referenced by this * DriveItem 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 drive item referenced by * this DriveItem instance. * * @return int The last modification time of the drive item referenced by * this DriveItem instance, in seconds since UNIX epoch. */ public function getUpdatedTime() { if (null === $this->_updatedTime) { $this->fetchProperties(); } return $this->_updatedTime; } /** * Moves the OneDrive drive item referenced by this DriveItem instance into * another OneDrive folder. * * @param null|string $destinationId The unique ID of the OneDrive folder * into which to move the OneDrive drive * item referenced by this DriveItem * instance, or null to move it to the * OneDrive root folder. Default: null. */ public function move($destinationId = null) { $this->_client->moveObject($this->_id, $destinationId); } }