Видео с DevConf 2014 - Соб@чники против ...

DevConf 2017 - видео с конференции, успей до 17 июля | Проверенные VDS на SSD в Европе и России

Тема в разделе "Вопросы по программированию на РНР", создана пользователем admin, 27 май 2015.

  1. admin

    admin Опять хирург :-) Команда форума

    Тема собаки, великого и ужасного оператора @, обсуждалась так бурно, что собрала вокруг несколько десятков человек. Даже грохот музыки из колонок на сцене не помешал святой войне.

    В 2012 дискуссия осталась незаконченной, каждая из сторон осталась при своем мнении, и перехода на личности не случилось.

    Тема далеко не так проста, как кажется на первый взгляд. Масса исключительных ситуаций и подводных камней и дает сильные аргументы каждой из сторон.

    Сейчас я прошу своих друзей участников вернуться, продолжить, вынести этот вечный вопрос на большую сцену на DevConf 2014. Приглашаю коллег выступить на стороне одной из команд.

    Сделаем Talk-шоу! 5-10 минут каждой стороне для обоснования почему собаки - хорошо, а затем - почему их надо убивать.

    [​IMG]
    Видео (~ часа холивара!)
    http://devconf.ru/news/detail/29
     
    Последнее редактирование: 27 май 2015
    grigori нравится это.
  2. c0dex

    c0dex web.dev 2002-... Команда форума

    Сообщения:
    7.360
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    на devconf 2015 только ;)
     
  3. admin

    admin Опять хирург :-) Команда форума

    Пофиксил... ты как сам будешь?
     
  4. c0dex

    c0dex web.dev 2002-... Команда форума

    Сообщения:
    7.360
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Я про кусок этот писал, тут должно быть 2015.

    Я пока не знаю =( Хотелось бы.
     
  5. Sam Dark

    Sam Dark Новичок

    Сообщения:
    150
    Ваш город:
    Voronezh, Russia
    Adress:
    Voronezh, Russia
    Country:
    Location on Map:
    Эх, не попадаю я в этот раз. А то бы задал жару :(
     
  6. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    3.867
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Когда все ошибки периода исполнения переведут в эксепшены, собака просто будет ненужна, вымрет как динозавр.
    Пока этого нет - хоть чего говори со сцены.
     
  7. AmdY

    AmdY Пью пиво Команда форума

    Сообщения:
    6.910
    Ваш город:
    Belarus, Minsk
    Adress:
    Minsk, Belarus
    Country:
    Location on Map:
    ага, в том и дело, что собака хорошо смотртся, если при этом обрабатывается ошибка

    PHP:
    if (!@unlink($file)) {
        throw new 
    ExceptionUnlink('невозможно удалить файл: ' $file);
    }
     
  8. Sam Dark

    Sam Dark Новичок

    Сообщения:
    150
    Ваш город:
    Voronezh, Russia
    Adress:
    Voronezh, Russia
    Country:
    Location on Map:
    Я всеми руками за исключения, но ради обратной совместимости они ещё не скоро будут. В примере выше, к сожалению, никак не узнать, из за чего именно не сработал unlink.
     
  9. Welcome

    Welcome Новичок

    Сообщения:
    105
    Ваш город:
    Nikolaev, Ukraine
    Adress:
    Mykolaiv, Ukraine
    Country:
    Location on Map:
    Я может чего-то не понимаю, но
    Код:
    error_get_last()['message']
    ?

    Не очень "красиво", но...
     
  10. Sam Dark

    Sam Dark Новичок

    Сообщения:
    150
    Ваш город:
    Voronezh, Russia
    Adress:
    Voronezh, Russia
    Country:
    Location on Map:
  11. Sam Dark

    Sam Dark Новичок

    Сообщения:
    150
    Ваш город:
    Voronezh, Russia
    Adress:
    Voronezh, Russia
    Country:
    Location on Map:
    33-й и далее.
     
  12. fixxxer

    fixxxer К.О.

    Сообщения:
    12.172
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Судя по тому, как в https://wiki.php.net/rfc/engine_exceptions_for_php7 вопрос фактически проигнорирован - никогда. :(

    Хотя несложно придумать решение с сохранением BC - достаточно передавать аргументом колбэка set_error_handler тип ошибки в более-менее вменяемом виде (номер или простой строковый идентификатор, не требующий парсинга), который легко замапить на иерархию исключений.
     
  13. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    3.867
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Какой смысл конвертировать ФАТАЛЬНЫЕ ошибки в исключения?
     
  14. MiksIr

    MiksIr miksir@home:~$

    Сообщения:
    3.093
    Ваш город:
    Третьяковская, Москва, город Москва, Россия
    Adress:
    Moskva, Russia
    Country:
    Location on Map:
    В rfc написано.
     
  15. Вурдалак

    Вурдалак Newbie

    Сообщения:
    5.847
    Ваш город:
    Russia, Moscow
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Тебе нужен перевод?
     
  16. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    3.867
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Мне нужно пояснение. Я, видимо, чего-то не понимаю.
     
  17. Sam Dark

    Sam Dark Новичок

    Сообщения:
    150
    Ваш город:
    Voronezh, Russia
    Adress:
    Voronezh, Russia
    Country:
    Location on Map:
    1. Вывести вместо дефолтнго экрана смерти что-то полезное: трейс, кусок кода с ошибкой и т.д.
    2. Залогировать фатал в файлы, почту, базу, rollbar.
     
  18. AnrDaemon

    AnrDaemon Продвинутый новичок

    Сообщения:
    3.867
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    default_error_handler не?
     
  19. Вурдалак

    Вурдалак Newbie

    Сообщения:
    5.847
    Ваш город:
    Russia, Moscow
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Fatal'ы нужны в виде исключений примерно по тем же соображениям, что NullPointerException в Java. Если какая-то подсистема (виджет сайта, рекламный баннер, подписчик события) не работает, но это ещё не повод считать всю систему нерабочей.
     
  20. MiksIr

    MiksIr miksir@home:~$

    Сообщения:
    3.093
    Ваш город:
    Третьяковская, Москва, город Москва, Россия
    Adress:
    Moskva, Russia
    Country:
    Location on Map:
    The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING,E_COMPILE_ERROR, E_COMPILE_WARNING