Но зачем писать этот сложный алгоритм, когда можно сделать как в коде нижеУверен что данный алгоритм был приведен для примера или в образовательных целях. Здесь важен не код, а алгоритм, по которому работает сортировка. Во всех функциях сортировки внутри функция, похожая на пузырьковую сортировку, в той или иной степени, просто написанная на C и скомпилированная в виде готовой функции. Подробнее можно посмотреть тут.
и результат будет тот же.
$path = "../imagepost/".$_FILES['photo']['name'];
так делать нельзя, путь надо писать абсолютный.if($_COOKIE['user'] == ''){
echo 'У вас нету аккаунта(';
exit;
}
Проверка куки на логин это даже не смешно. Я сам у себя могу установить любые куки, и все, я уже залогинен, нормально?Что в этой схеме надо поменять?выкинуть редис?
Что может пойти не так, что DTO от такой логики будет уже не DTO и какие могут быть проблемы?DTO - чисто инструмент переноса, в классическом ООП он выполняет роль сигнала для взаимодействия между абстрактными сущностями. По этому его задача хранить данные, а логика его построения должна быть отделена. Если у вас 10 дтошек, и что-то поменялось в логике построения, вы будете все десять штук менять, что уже выглядит странно и не очень логично. Напрашивается логичное решение - использовать фэктори, которая, в противовес дто, имеет только логику, и все манипуляции с данными сводятся в 1 место. Пишете фэктори, и на каждый источник у вас свой фабричный метод, а на выходе нужный дто.
Прикол в том, что если удалить физический файл, а запись в БД нет,то рано или поздно будешь сожалеть что написал кривой г-код. Это мы вроде как поняли.
Важно отметить, что доступ идёт на прямую к файлу, а не на сервер с запросом на файлНу да, это "редкий" случай. Важно понимать.
Возможно ли как-то это отследить и вывести ошибку об отсутствии файла (Ну и там не сервер кинуть запрос об удалении записи в БД и т.д. и т.п.)?Возможно. Достаточно добавить проверку на file_exists(), только пути надо указывать серверные (Важно понимать), так как поведение в случае запроса через веб адрес зависит от настроек окружения.