23 апреля в 23:20

PHP-Дайджест № 107 – свежие новости, материалы и инструменты (9 – 23 апреля 2017)



Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!


Новости и релизы



PHP


  • Замена интерфейса Serializable — Предложение от Никиты Попова, пока не оформленное в виде RFC. Текущая реализация интерфейса имеет ряд проблем, в том числе безопасности. Предлагается использовать интерфейс с магическими методами, которые не требуют вызова serialize/unserialize, вместо этого работают с массивами:

    public function __serialize() : array;
    public function __unserialize(array $data) : void;
    

Инструменты



Материалы для обучения



Занимательное



Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.

Прислать ссылку
Быстрый поиск по всем дайджестам
Предыдущий выпуск: PHP-Дайджест № 106
Автор: @pronskiy

Комментарии (17)

  • 0
    Может кто-нибудь пояснить по поводу сериализации? Проблема с безопасностью-то понятна, но зачем мне массив в результате сериализации?
    • +2
      Чтобы убрать вызовы serialize/deserialize из методов и избавиться от проблем очерёдности этих вызовов. Вы просто возвращаете массив данных, которые должны попасть в итоговую строку, а потом на вход принимаете такой же массив для наполнения объекта.
  • 0
    По статье о замене ассоциативных массивов объектами: в типовом веб приложении, где извлекаем данные из базы и по цепочке методов передаём шаблонизатору, реальная экономия памяти составляет до 40%
    • 0
      В какой версии PHP?
      • 0
        Давно тестировал, в 5.2, сейчас должно быть ещё лучше из-за оптимизации в 7
        было примерно так: echo get_comments(123) — $post->get_comments() — $db->query — mysqli_fetch_assoc
        — съедает память из за копирования массива в каждом звене
        стало: echo get_comments(123) — $post->get_comments() — $db->query — mysqli_fetch_object
        — по сути массив ссылок передаётся и всё

        * можно передавать массив по ссылке, но это не наш путь

        главное, на что указывает автор, что в каждом массиве хранятся ещё и ключи, а в объектах нет
        • 0
          съедает память из за копирования массива в каждом звене

          там же copy-on-write так что "съедать" должно только если вы в каждом "звене" что-то делаете с данными.

          • 0
            спасибо за уточнение
            у меня там данные менялись
  • 0

    Из рабочего чата


    Newest PHP (7.0.18 / 7.1.4) has new “feature” (https://bugs.php.net/bug.php?id=74216) that breaks predis
  • +1
    Кто-нибудь spiral успел попробовать? Как ощущения?
    Неделю назад на него наткнулся, хотел использовать в будущем rad проекте вместо yii
    • +4

      Постоянно используем ее в продакшене (50+ проектов), но я автор и этот ответ не считается.

    • 0

      Spiral получился интересным, но я бы не стал надеяться на RAD в продакшне с новым, ещё не изученным фреймворком.

  • +1
    Спасибо за полезную информацию! Статью «Построение гибких PHP приложений» перевел, https://habrahabr.ru/post/327746/
  • 0
    pronskiy а вы случайно в телеграм не транслируете эти подборки?
    • 0
      Канал дайджеста сделал https://t.me/phpdigest но пока он пуст и никак не используется. А как вы это видите? Если что меня можно найти в телеграме https://t.me/prnsk
      • +1
        Сделал репост по каналам PHP — попробуем проинформировать о нем.
        • 0
          Супер, спасибо!
          • +1
            Было 8 подписчиков — ужо 44 :-)

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

Самое читаемое Разработка