Size: a a a

2020 March 18

H ᵘ ʜ ᵘ in PHP
Артём
Ответь честно — тестовое задание?
нет, не тестовое
источник

H ᵘ ʜ ᵘ in PHP
Артём
Т.е. тебе прямо сказали «ничего готового не юзать, плить с нуля»?
нет, так не говорили
источник

А

Артём in PHP
H ᵘ ʜ ᵘ
нет, так не говорили
Тогда что значит «так захотели выше»?
источник

А

Артём in PHP
Где «выше»? Воля небес?
источник

H ᵘ ʜ ᵘ in PHP
откуда столько злости то?
источник

H ᵘ ʜ ᵘ in PHP
в моём случае под "выше" имеется в виду СТО
источник

А

Артём in PHP
H ᵘ ʜ ᵘ
откуда столько злости то?
Ты ещё и видишь то, чего нет...
источник

А

Артём in PHP
H ᵘ ʜ ᵘ
в моём случае под "выше" имеется в виду СТО
Чем он мотивировал?
источник

А

Артём in PHP
Мне просто интересно, это его личная шиза или есть вменяемые аргументы
источник

А

Артём in PHP
Типа, «у флайсистема есть фатальный недостаток©». Это шиза.
источник

MM

Maksim Masiukevich in PHP
Фатальный недостаток есть в днк сто)
источник

А

Артём in PHP
Или «по лицензии не подходит, мы пилим для госухи, а там мудаки и MIT не понимают». Это вменяемый аргумент
источник

А

Артём in PHP
Нет, он, конечно, идиотский, но на уровне СТО — нормально, не ему с мудаками в госухе бодаться
источник

АС

Альберт Степанцев in PHP
H ᵘ ʜ ᵘ
всем привет. пишу либу для хранения файлов, есть 3 класса: Manager, Storage и File.
Manager является, по сути, основным классом, внутри которого реализованы методы store, get, delete. Он же работает с базой.
Storage - класс чисто для работы с файлами и директориями. в нём есть upload, отдающий объект File после загрузки файла. этот метод дёргается из Manager::store перед тем, как записать файл в базу.
File, если по-простому, то модель файла.

вопрос заключается в распределении функционала. сейчас File умеет сам себя удалять из хранилища - просто вызывает анлинк на абсолютный путь. правильно ли это? или этим должен заниматься Storage, который сейчас ничего не знает о File, кроме как то, что его нужно отдавать после аплоада?

плюс хочу организовать очистку пустых директорий.
название файла при загрузке генерится из md5+timestamp. после этого из этого имени нарезаются названия подпапок (не помню названия этого способа, но до определённого уровня вложенности с начала названия файла отщипываются куски и с их названиями создаются папки). например, файл b4bfcf6443db07298095fd21bf58479b_1584557369.jpg будет лежать в uploads/b4/bf/. после удаления файла папки b4/bf останутся, а хотелось бы их подчищать, убедившись, что они пустые. есть ли смысл закладывать такой функционал в тот же File::delete()? или лучше вынести это в Storage и там уже сканировать uploads и удалять всё, что пустое?
спасибо
если в вашей предметной области файл может сам себя удалить - ОК
иначе переделывать
источник

АС

Альберт Степанцев in PHP
обычно всё-таки удаление это внешнее действие по отношению к файлу, а не его "метод"
источник

F

FOX in PHP
Альберт Степанцев
если в вашей предметной области файл может сам себя удалить - ОК
иначе переделывать
Файл-суицидник, неплохая идея
источник

АС

Альберт Степанцев in PHP
да - но
тогда вам придется хранить и синхронизировать в объекте типа File его актуальный стейт
а это вообще-то ни хрена не тривиально
источник

АС

Альберт Степанцев in PHP
в многопроцессной ОС
источник

АС

Альберт Степанцев in PHP
а если файл кто-то удалил? а вы пытаетесь его прочесть, полагаясь на то, что его стейт - "существует"?
источник

АС

Альберт Степанцев in PHP
короче
Active Record по отношению к файлами - как минимум странная идея
источник