DI::storageManager()->register(SampleStorageBackend::class);
}
-function webdav_storage_uninstall()
+function samplestorage_storage_uninstall()
{
DI::storageManager()->unregister(SampleStorageBackend::class);
}
-function webdav_storage_instance(App $a, array &$data)
+function samplestorage_storage_instance(App $a, array &$data)
{
$config = new SampleStorageBackendConfig(DI::l10n(), DI::config());
$data['storage'] = new SampleStorageBackendConfig($config->getFileName());
}
-function webdav_storage_config(App $a, array &$data)
+function samplestorage_storage_config(App $a, array &$data)
{
- $data['storage_config'] = new WebDavConfig(DI::l10n(), DI::config());
+ $data['storage_config'] = new SampleStorageBackendConfig(DI::l10n(), DI::config());
}
```
- **uid** (input): the user id to revoke the block for.
- **result** (output): a boolean value indicating wether the operation was successful or not.
+### storage_instance
+
+Called when a custom storage is used (e.g. webdav_storage)
+
+Hook data:
+- **name** (input): the name of the used storage backend
+- **data['storage']** (output): the storage instance to use (**must** implement `\Friendica\Model\Storage\IWritableStorage`)
+
+### storage_config
+
+Called when the admin of the node wants to configure a custom storage (e.g. webdav_storage)
+
+Hook data:
+- **name** (input): the name of the used storage backend
+- **data['storage_config']** (output): the storage configuration instance to use (**must** implement `\Friendica\Model\Storage\IStorageConfiguration`)
+
## Complete list of hook callbacks
Here is a complete list of all hook callbacks with file locations (as of 24-Sep-2018). Please see the source for details of any hooks not documented above.
* Filesystem constructor.
*
* @param string $filesystemPath
+ *
+ * @throws StorageException in case the path doesn't exist or isn't writeable
*/
public function __construct(string $filesystemPath = FilesystemConfig::DEFAULT_BASE_FOLDER)
{
$path = $filesystemPath;
$this->basePath = rtrim($path, '/');
+
+ if (!is_dir($this->basePath) || !is_writable($this->basePath)) {
+ throw new StorageException(sprintf('Path %s does not exist or is not writeable', $this->basePath));
+ }
}
/**