JohnCMS | Upload

3.8K
.
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