JohnCMS | Upload

6.82K
.

Koenig, а зачем свой Kfile есть SplFileInfo, который может все то же?

.
(\/)____o_O____(\/)

Delphinum, ну там же ещё методы добавляются

.

Koenig, generatehash? Я бы вынес его в интерфейс или в FileStorage (или и то и другое). Файл это файл )

.

storage -> upload -> storage -> file
?

.

ramzes, я бы предложил:
PSR7 (UploadedFile) -> Storage -> SplFileInfo

.

т.е. аплоад инициализируется логикой? не хранилищем?

.
Delphinum

ramzes, Не обязательно, можно сделать фассадный метод:

class FileStorage{
  public function upload($name){
    $file = UploadedFile::fromGlobal($name);
    $this->moveIn($file);
  }
}

Просто мне кажется что ваше хранилище файлов может пригодиться не только для загрузки файлов клиентом, но и для хранения вообще всех файлов которые есть в системе (к примеру для хранения превьюшек и файлок, загружаемых через всякие парсеры). В этом случае у файлового хранилища должна быть только логика добавления готового файла в него, а логика загрузки файла это отдельная тема.
.
# Delphinum (25.08.2016 / 17:32)
Koenig, generatehash? Я бы вынес его в интерфейс или в FileStorage (или и то и другое). Файл это файл )
Я бы поспорил. Это ведь придётся везде за собой FileStorage таскать даже там, где он не нужен. И почему файл не может знать о хэше? Не вижу в этом ничего страшного. Единственное, что не нравится, так это имена методов. Вместо generatehash() я бы написал getMd5Hash(), а вместо data() -- asArray() или toArray().
.

reaper, если тебе необходимо в любом месте системы получать md5 хеш файла, то да, это должно относится к файлу, но если md5 хеш файла нужен только для сохранения его в хранилище (и получения его из хранилища), то это не часть файла и ее лучше вынести. Зависит от задачи )

.
(\/)____o_O____(\/)

вот подшаманил

Прикрепленные файлы:
Всего: 140