X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FAttach.php;h=b81c38762eb556c75b3bb119d5f0a12406431e29;hb=93380b8471164a8ed5d1d46e94d53bf37fe87cee;hp=0073a6ed3f52f9b2ab6cddf8be1aad23aaa23858;hpb=a61ce4fed0eba0c1cee3b96e81be6fa89e96c9f9;p=friendica.git diff --git a/src/Model/Attach.php b/src/Model/Attach.php index 0073a6ed3f..b81c38762e 100644 --- a/src/Model/Attach.php +++ b/src/Model/Attach.php @@ -1,44 +1,57 @@ . + * */ + namespace Friendica\Model; -use Friendica\BaseObject; -use Friendica\Core\StorageManager; use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Database\DBStructure; -use Friendica\Model\Storage\IStorage; +use Friendica\DI; use Friendica\Object\Image; use Friendica\Util\DateTimeFormat; use Friendica\Util\Mimetype; -use Friendica\Util\Security; +use Friendica\Security\Security; /** * Class to handle attach dabatase table */ -class Attach extends BaseObject +class Attach { /** - * @brief Return a list of fields that are associated with the attach table + * Return a list of fields that are associated with the attach table * * @return array field list * @throws \Exception */ private static function getFields() { - $allfields = DBStructure::definition(self::getApp()->getBasePath(), false); + $allfields = DBStructure::definition(DI::app()->getBasePath(), false); $fields = array_keys($allfields['attach']['fields']); array_splice($fields, array_search('data', $fields), 1); return $fields; } /** - * @brief Select rows from the attach table and return them as array + * Select rows from the attach table and return them as array * * @param array $fields Array of selected fields, empty for all * @param array $conditions Array of fields for conditions @@ -59,7 +72,7 @@ class Attach extends BaseObject } /** - * @brief Retrieve a single record from the attach table + * Retrieve a single record from the attach table * * @param array $fields Array of selected fields, empty for all * @param array $conditions Array of fields for conditions @@ -80,7 +93,7 @@ class Attach extends BaseObject } /** - * @brief Check if attachment with given conditions exists + * Check if attachment with given conditions exists * * @param array $conditions Array of extra conditions * @@ -93,7 +106,7 @@ class Attach extends BaseObject } /** - * @brief Retrive a single record given the ID + * Retrive a single record given the ID * * @param int $id Row id of the record * @@ -108,7 +121,7 @@ class Attach extends BaseObject } /** - * @brief Retrive a single record given the ID + * Retrive a single record given the ID * * @param int $id Row id of the record * @@ -137,7 +150,7 @@ class Attach extends BaseObject } /** - * @brief Get file data for given row id. null if row id does not exist + * Get file data for given row id. null if row id does not exist * * @param array $item Attachment data. Needs at least 'id', 'backend-class', 'backend-ref' * @@ -146,7 +159,8 @@ class Attach extends BaseObject */ public static function getData($item) { - if ($item['backend-class'] == '') { + $backendClass = DI::storageManager()->getByName($item['backend-class'] ?? ''); + if ($backendClass === null) { // legacy data storage in 'data' column $i = self::selectFirst(['data'], ['id' => $item['id']]); if ($i === false) { @@ -154,14 +168,13 @@ class Attach extends BaseObject } return $i['data']; } else { - $backendClass = $item['backend-class']; $backendRef = $item['backend-ref']; - return $backendClass::get($backendRef); + return $backendClass->get($backendRef); } } /** - * @brief Store new file metadata in db and binary in default backend + * Store new file metadata in db and binary in default backend * * @param string $data Binary data * @param integer $uid User ID @@ -186,13 +199,8 @@ class Attach extends BaseObject $filesize = strlen($data); } - /** @var IStorage $backend_class */ - $backend_class = StorageManager::getBackend(); - $backend_ref = ''; - if ($backend_class !== '') { - $backend_ref = $backend_class::put($data); - $data = ''; - } + $backend_ref = DI::storage()->put($data); + $data = ''; $hash = System::createGUID(64); $created = DateTimeFormat::utcNow(); @@ -210,7 +218,7 @@ class Attach extends BaseObject 'allow_gid' => $allow_gid, 'deny_cid' => $deny_cid, 'deny_gid' => $deny_gid, - 'backend-class' => $backend_class, + 'backend-class' => (string)DI::storage(), 'backend-ref' => $backend_ref ]; @@ -222,7 +230,7 @@ class Attach extends BaseObject } /** - * @brief Store new file metadata in db and binary in default backend from existing file + * Store new file metadata in db and binary in default backend from existing file * * @param $src * @param $uid @@ -247,7 +255,7 @@ class Attach extends BaseObject /** - * @brief Update an attached file + * Update an attached file * * @param array $fields Contains the fields that are updated * @param array $conditions Condition array with the key values @@ -266,10 +274,9 @@ class Attach extends BaseObject $items = self::selectToArray(['backend-class','backend-ref'], $conditions); foreach($items as $item) { - /** @var IStorage $backend_class */ - $backend_class = (string)$item['backend-class']; - if ($backend_class !== '') { - $fields['backend-ref'] = $backend_class::put($img->asString(), $item['backend-ref']); + $backend_class = DI::storageManager()->getByName($item['backend-class'] ?? ''); + if ($backend_class !== null) { + $fields['backend-ref'] = $backend_class->put($img->asString(), $item['backend-ref'] ?? ''); } else { $fields['data'] = $img->asString(); } @@ -283,7 +290,7 @@ class Attach extends BaseObject /** - * @brief Delete info from table and data from storage + * Delete info from table and data from storage * * @param array $conditions Field condition(s) * @param array $options Options array, Optional @@ -299,10 +306,9 @@ class Attach extends BaseObject $items = self::selectToArray(['backend-class','backend-ref'], $conditions); foreach($items as $item) { - /** @var IStorage $backend_class */ - $backend_class = (string)$item['backend-class']; - if ($backend_class !== '') { - $backend_class::delete($item['backend-ref']); + $backend_class = DI::storageManager()->getByName($item['backend-class'] ?? ''); + if ($backend_class !== null) { + $backend_class->delete($item['backend-ref'] ?? ''); } }