mirror of
https://github.com/friendica/friendica
synced 2025-04-28 22:24:22 +02:00
Split IStorage and ISelectableStorage and make their behaviour homogenous
This commit is contained in:
parent
e205bd450e
commit
5dcdf2322e
9 changed files with 216 additions and 229 deletions
|
@ -22,9 +22,7 @@
|
|||
namespace Friendica\Model\Storage;
|
||||
|
||||
/**
|
||||
* Interface for storage backends
|
||||
*
|
||||
* @todo Split this interface into "IStorage" for get() operations (including Resource fetching) and "IUserStorage" for real user backends including put/delete/options
|
||||
* Interface for basic storage backends
|
||||
*/
|
||||
interface IStorage
|
||||
{
|
||||
|
@ -34,77 +32,11 @@ interface IStorage
|
|||
* @param string $reference Data reference
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @throws StorageException in case there's an unexpected error
|
||||
* @throws ReferenceStorageException in case the reference doesn't exist
|
||||
*/
|
||||
public function get(string $reference);
|
||||
|
||||
/**
|
||||
* Put data in backend as $ref. If $ref is not defined a new reference is created.
|
||||
*
|
||||
* @param string $data Data to save
|
||||
* @param string $reference Data reference. Optional.
|
||||
*
|
||||
* @return string Saved data reference
|
||||
*/
|
||||
public function put(string $data, string $reference = "");
|
||||
|
||||
/**
|
||||
* Remove data from backend
|
||||
*
|
||||
* @param string $reference Data reference
|
||||
*
|
||||
* @return boolean True on success
|
||||
*/
|
||||
public function delete(string $reference);
|
||||
|
||||
/**
|
||||
* Get info about storage options
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* This method return an array with informations about storage options
|
||||
* from which the form presented to the user is build.
|
||||
*
|
||||
* The returned array is:
|
||||
*
|
||||
* [
|
||||
* 'option1name' => [ ..info.. ],
|
||||
* 'option2name' => [ ..info.. ],
|
||||
* ...
|
||||
* ]
|
||||
*
|
||||
* An empty array can be returned if backend doesn't have any options
|
||||
*
|
||||
* The info array for each option MUST be as follows:
|
||||
*
|
||||
* [
|
||||
* 'type', // define the field used in form, and the type of data.
|
||||
* // one of 'checkbox', 'combobox', 'custom', 'datetime',
|
||||
* // 'input', 'intcheckbox', 'password', 'radio', 'richtext'
|
||||
* // 'select', 'select_raw', 'textarea'
|
||||
*
|
||||
* 'label', // Translatable label of the field
|
||||
* 'value', // Current value
|
||||
* 'help text', // Translatable description for the field
|
||||
* extra data // Optional. Depends on 'type':
|
||||
* // select: array [ value => label ] of choices
|
||||
* // intcheckbox: value of input element
|
||||
* // select_raw: prebuild html string of < option > tags
|
||||
* ]
|
||||
*
|
||||
* See https://github.com/friendica/friendica/wiki/Quick-Template-Guide
|
||||
*/
|
||||
public function getOptions();
|
||||
|
||||
/**
|
||||
* Validate and save options
|
||||
*
|
||||
* @param array $data Array [optionname => value] to be saved
|
||||
*
|
||||
* @return array Validation errors: [optionname => error message]
|
||||
*
|
||||
* Return array must be empty if no error.
|
||||
*/
|
||||
public function saveOptions(array $data);
|
||||
public function get(string $reference): string;
|
||||
|
||||
/**
|
||||
* The name of the backend
|
||||
|
@ -118,5 +50,5 @@ interface IStorage
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName();
|
||||
public static function getName(): string;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue