Version 1
[yaffs-website] / web / core / modules / user / src / UserDataInterface.php
diff --git a/web/core/modules/user/src/UserDataInterface.php b/web/core/modules/user/src/UserDataInterface.php
new file mode 100644 (file)
index 0000000..24cd45d
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+
+namespace Drupal\user;
+
+/**
+ * Defines the user data service interface.
+ */
+interface UserDataInterface {
+
+  /**
+   * Returns data stored for a user account.
+   *
+   * @param string $module
+   *   The name of the module the data is associated with.
+   * @param int $uid
+   *   (optional) The user account ID the data is associated with.
+   * @param string $name
+   *   (optional) The name of the data key.
+   *
+   * @return mixed|array
+   *   The requested user account data, depending on the arguments passed:
+   *   - For $module, $name, and $uid, the stored value is returned, or NULL if
+   *     no value was found.
+   *   - For $module and $uid, an associative array is returned that contains
+   *     the stored data name/value pairs.
+   *   - For $module and $name, an associative array is returned whose keys are
+   *     user IDs and whose values contain the stored values.
+   *   - For $module only, an associative array is returned that contains all
+   *     existing data for $module in all user accounts, keyed first by user ID
+   *     and $name second.
+   */
+  public function get($module, $uid = NULL, $name = NULL);
+
+  /**
+   * Stores data for a user account.
+   *
+   * @param string $module
+   *   The name of the module the data is associated with.
+   * @param int $uid
+   *   The user account ID the data is associated with.
+   * @param string $name
+   *   The name of the data key.
+   * @param mixed $value
+   *   The value to store. Non-scalar values are serialized automatically.
+   */
+  public function set($module, $uid, $name, $value);
+
+  /**
+   * Deletes data stored for a user account.
+   *
+   * @param string|array $module
+   *   (optional) The name of the module the data is associated with. Can also
+   *   be an array to delete the data of multiple modules.
+   * @param int|array $uid
+   *   (optional) The user account ID the data is associated with. If omitted,
+   *   all data for $module is deleted. Can also be an array of IDs to delete
+   *   the data of multiple user accounts.
+   * @param string $name
+   *   (optional) The name of the data key. If omitted, all data associated with
+   *   $module and $uid is deleted.
+   */
+  public function delete($module = NULL, $uid = NULL, $name = NULL);
+
+}