Overview

Classes

  • Dropbox\AccessToken
  • Dropbox\AccessType
  • Dropbox\AppInfo
  • Dropbox\AuthInfo
  • Dropbox\Client
  • Dropbox\Config
  • Dropbox\Path
  • Dropbox\RequestToken
  • Dropbox\Token
  • Dropbox\WebAuth
  • Dropbox\WriteMode

Exceptions

  • Dropbox\AppInfoLoadException
  • Dropbox\AuthInfoLoadException
  • Dropbox\DeserializeException
  • Dropbox\Exception
  • Dropbox\Exception_BadRequest
  • Dropbox\Exception_BadResponse
  • Dropbox\Exception_BadResponseCode
  • Dropbox\Exception_InvalidAccessToken
  • Dropbox\Exception_NetworkIO
  • Dropbox\Exception_ProtocolError
  • Dropbox\Exception_RetryLater
  • Dropbox\Exception_ServerError
  • Overview
  • Class
  • Tree
  1: <?php
  2: namespace Dropbox;
  3: 
  4: /**
  5:  * Describes how a file should be saved when it is written to Dropbox.
  6:  */
  7: final class WriteMode
  8: {
  9:     /**
 10:      * The URL parameters to pass to the file uploading endpoint to achieve the
 11:      * desired write mode.
 12:      *
 13:      * @var array
 14:      */
 15:     private $extraParams;
 16: 
 17:     /**
 18:      * @internal
 19:      */
 20:     private function __construct($extraParams)
 21:     {
 22:         $this->extraParams = $extraParams;
 23:     }
 24: 
 25:     /**
 26:      * @internal
 27:      */
 28:     function getExtraParams()
 29:     {
 30:         return $this->extraParams;
 31:     }
 32: 
 33:     /**
 34:      * Returns a {@link WriteMode} for adding a new file.  If a file at the specified path already
 35:      * exists, the new file will be renamed automatically.
 36:      *
 37:      * For example, if you're trying to upload a file to "/Notes/Groceries.txt", but there's
 38:      * already a file there, your file will be written to "/Notes/Groceries (1).txt".
 39:      *
 40:      * You can determine whether your file was renamed by checking the "path" field of the
 41:      * metadata object returned by the API call.
 42:      *
 43:      * @return WriteMode
 44:      */
 45:     static function add()
 46:     {
 47:         if (self::$addInstance === null) {
 48:             self::$addInstance = new WriteMode(array("overwrite" => "false"));
 49:         }
 50:         return self::$addInstance;
 51:     }
 52:     private static $addInstance = null;
 53: 
 54:     /**
 55:      * Returns a {@link WriteMode} for forcing a file to be at a certain path.  If there's already
 56:      * a file at that path, the existing file will be overwritten.  If there's a folder at that
 57:      * path, however, it will not be overwritten and the API call will fail.
 58:      *
 59:      * @return WriteMode
 60:      */
 61:     static function force()
 62:     {
 63:         if (self::$forceInstance === null) {
 64:             self::$forceInstance = new WriteMode(array("overwrite" => "true"));
 65:         }
 66:         return self::$forceInstance;
 67:     }
 68:     private static $forceInstance = null;
 69: 
 70:     /**
 71:      * Returns a {@link WriteMode} for updating an existing file.  This is useful for when you
 72:      * have downloaded a file, made modifications, and want to save your modifications back to
 73:      * Dropbox.  You need to specify the revision of the copy of the file you downloaded (it's
 74:      * the "rev" parameter of the file's metadata object).
 75:      *
 76:      * If, when you attempt to save, the revision of the file currently on Dropbox matches
 77:      * $revToReplace, the file on Dropbox will be overwritten with the new contents you provide.
 78:      *
 79:      * If the revision of the file currently on Dropbox doesn't match $revToReplace, Dropbox will
 80:      * create a new file and save your contents to that file.  For example, if the original file
 81:      * path is "/Notes/Groceries.txt", the new file's path might be
 82:      * "/Notes/Groceries (conflicted copy).txt".
 83:      *
 84:      * You can determine whether your file was renamed by checking the "path" field of the
 85:      * metadata object returned by the API call.
 86:      *
 87:      * @param string $revToReplace
 88:      * @return WriteMode
 89:      */
 90:     static function update($revToReplace)
 91:     {
 92:         return new WriteMode(array("parent_rev" => $revToReplace));
 93:     }
 94: 
 95:     /**
 96:      * Check that a function argument is of type <code>WriteMode</code>.
 97:      *
 98:      * @internal
 99:      */
100:     static function checkArg($argName, $argValue)
101:     {
102:         if (!($argValue instanceof self)) Checker::throwError($argName, $argValue, __CLASS__);
103:     }
104: 
105:     /**
106:      * Check that a function argument is either <code>null</code> or of type
107:      * <code>WriteMode</code>.
108:      *
109:      * @internal
110:      */
111:     static function checkArgOrNull($argName, $argValue)
112:     {
113:         if ($argValue === null) return;
114:         if (!($argValue instanceof self)) Checker::throwError($argName, $argValue, __CLASS__);
115:     }
116: }
117: 
Dropbox SDK for PHP API documentation generated by ApiGen 2.8.0