Код для критики.

tz-lom

Продвинутый новичок
berkut
а ты видимо перед записью файла всегда проверяешь права доступа к файлу и папке, да ?
собака это плохо,очень плохо, но без неё может быть ещё хуже
 

Фанат

oncle terrible
Команда форума
не нагуглил, можно ссылку, похоже я что-то очень неправильно понял, и не хочу задавать глупый вопрос =)
Спасибо за хороший вопрос.
У меня в голове смешались две вещи
- летняя новость о прекращении поддержки mysql extension.
- ответ на мой багрепорт, который я просмотрел по диагонали с телефона, и понял наоборот - решив, что в совсем новых версиях выдаётся депрекейтед.
А на самом деле - нет, ничего не выдаётся.

Так что беру свои слова обратно.
 

AmdY

Пью пиво
Команда форума
Фанат
думаю, здесь не важно как дело закончилось, главное доводить до новичков, что mysq_* плохо, пуска пользуются решениями с prepare statment.

p.s. мы то знаем что это не совсем правда, но неокрепшим умам лучше не ходить по граблям.
 
  • Like
Реакции: KorP

Фанат

oncle terrible
Команда форума
Почему плохо-то?
Почему я не могу использовать mysql в своей либе для работы с БД? Что в ней принципиально плохого? Кроме невозможности вернуть множественный результат из хранимой процедуры (и это наверняка обходится).

Если уж чему и учить новичков - так это тому, что голые API функции в коде - это трэш и содомия, и НИКАКОЙ РАЗНИЦЫ, относятся ли они к неполноценной mysql или расово верной mysqli
 

AmdY

Пью пиво
Команда форума
Фанат
об этом я и писал в p.s., насколько помню раньше pdo внутри как раз и юзала эти же mysql_* функции, но всё это сложно и долго и трудно для понимания новичками.
 

tz-lom

Продвинутый новичок
Фанат
fopen
если произошла ошибка - будет FALSE , и уже можно ковыряться на тему выбрасывания исключения и снабжения его информацией для отладки
как я понимаю - E_WARNING это наследственное , поэтому приходится делать всё ручками, но это не повод не ставить собаку перед ней и наслаждаться горой обработанных ошибок в еррор логе
ну а если ставить собаку и не обрабатывать ошибку - это да, ССЗБ
 
  • Like
Реакции: AmdY

Вурдалак

Продвинутый новичок
tz-lom, нахрена нужна собака-то, я так и не понял? Замени ошибки исключениями и ничего тебе проверять не нужно будет.
PHP:
try
{
    $fh = fopen('doesNotExist', 'r');
    $data = fread($fh, 1024);
    fclose($fh);
}
catch(\ErrorException $e)
{
    echo $e;
}
 

tz-lom

Продвинутый новичок
Вурдалак
одно дело заменить ошибку на исключение, другое дело - подавить вывод описания ошибки, вот для этого @ и нужна
 

Вурдалак

Продвинутый новичок
tz-lom, это ты уже в catch'е решишь что делать. Выводиться просто так ничего не будет.
 

tz-lom

Продвинутый новичок
O,rly?
попробуй сделать fopen('/root_file','w'); с E_ALL и display_errors On
 

Вурдалак

Продвинутый новичок
O,rly?
попробуй сделать fopen('/root_file','w'); с E_ALL и display_errors On
Ну теперь и ты попробуй:
PHP:
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

set_error_handler(function($errno, $errstr, $errfile, $errline)
{
    throw new \ErrorException($errstr, $errno);
});

try
{
    $fh = fopen('doesNotExist', 'r');
    $data = fread($fh, 1024);
    fclose($fh);
}
catch(\ErrorException $e)
{
    //echo $e;
}
 

tz-lom

Продвинутый новичок
Это хорошая штука, пока в проект не подключается библиотека с ворнингами внутри, тогда к сожалению приходится отказываться от столь радикального способа управления ошибками, всё таки проще поддерживатьподпирать код чем исправлять его недочёты в столь глобальной манере.
Но да, это хороший метод о котором я забыл
 

Вурдалак

Продвинутый новичок
А чем устаревшая библиотека может помешать? Если, конечно, там не проверяют существование файла попыткой его открыть. :)
 

Фанат

oncle terrible
Команда форума
tz-lom
Вот таких, как ты, я буду лечить на веборубе.
Ещё не поздно записаться.
 
Сверху