PHP-Дайджест № 120 (1 – 19 ноября 2017)


    Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC6, новости PHP-FIG, пара принятых RFC для PHP 7.3, порция полезных инструментов, материалы по асинхронному PHP, и многое другое.
    Приятного чтения!



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


    • PHP 7.2.0 RC6 — Шестой и, вероятно, последний релиз-кандидат ветки 7.2. Затаив дыхание ждем финального релиза уже 30 ноября.
    • Статистика использования версий PHP – 2017.2 — Традиционная компиляция статистики за полгода на основе информации, которую Composer отправляет при подключении к packagist.org. Суммарная доля PHP 7 составляет уже 67.39%.
    • Месяц PHP FIG #1: октябрь 2017 — Первый регулярный обзор новостей из группы PHP-FIG. PSR-12 о расширенном стиле кодирования вошел в стадию черновика; много идей для новых стандартов и другие новости.
    • ru Новый код ответа HTTP — 103


    PHP Internals


    • [RFC] Allow a trailing comma in function calls — Предложение принято, а значит в ветке 7.3 станет возможным использование запятой после последнего аргумента функции:
      var_dump(
          $foo,
          $bar,
          $buz,
      );
      
    • [RFC] Flexible Heredoc and Nowdoc Syntaxes — Предложение по улучшению многострочных текстовых блоков также принято. Станут доступны поддержка отступов и отмена необходимости перевода строки после закрывающего маркера:
      <?php
      $values = [<<<EOT
                    a
                   b
                  c
                  EOT, 'd e f'];
      


    Инструменты


    • spiral/goridge — Высокопроизводительный RPC из PHP в Go без зависимостей.
    • BitOne/php-meminfo — Расширение, которое выводит информацию об использовании памяти и предназначено для обнаружения утечек.
    • simplario/quedis — Простая очередь на Redis. Прислал Влад Грознов.
    • daveearley/cli.fyi — Код сервиса cli.fyi, который выведет различную информацию в консоли при запросе с помощью curl.
    • ausi/slug-generator — Библиотека для генерации урлов (slug) на основе CLDR.
    • vozlt/nginx-module-vts — Расширение для nginx, которое выводит полезную страницу со статусом.
    • colinodell/json5 — Реализация де/кодирования JSON по стандарту JSON5.
    • mnapoli/pretty — CLI интерфейс для упрощения работы с CodeSniffer и PHP-CS-Fixer.
    • LambdaPHP — Инструмент для быстрого запуска PHP-приложения на AWS Lambda.


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




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



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

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

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

    Zfort Group
    Company
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 20

      +1
      Я для создания вебсокета в laravel использовал это — github.com/Askedio/laravel-ratchet
        +3
        Бро, а асинхронный пхп стоит того? Вижу много топиков на эту тему начало всплывать, но все мне как-то не сильно вериться в том, что это работает как надо. Что думаешь?
          +2
          стоит, если вам надо неблокирующий I/O
          а что значит «работает как надо»?
            +5
            Есть задачи где стоит использовать и PHP отлично справляется. Есть проблемы общие для любого асинхронного кода, и есть нюансы PHP. Сам использую на продакшне в нескольких проектах.
            Еще часто использую leproxy (который на PHP), когда нужно быстро поднять прокси :-)
              +1

              Спасибо за дайджест!

              +5
              Мы — Gamedev, перейдя на php-pm мы уменьшили количество серверов с 8 до 1(на самом деле 2, но он только ради failover). Наша ежедневная аудитория — 200 000 пользователей. Под капотом php-pm — reactphp. Работает это — КАК НАДО. Средняя нагрузка 700-1500 rps (в зависимости от времени суток). Запросы не пустышки — 95% модифицируют данные пользователя и сохраняют в базу. Уже 2ой год у нас это все крутится в продакшне… и да, наши сервера — дешевые Hetzner px120…
              но все мне как-то не сильно вериться в том, что это работает как надо

              Нам тоже не верилось тогда, что мы сможем держать такую нагрузку на php, но мы же программисты, да? Собрали за недельку тестовый билд, да погоняли…
                +1
                memory leaks нету? и как вы хендлите подключения к базе? какой-то пулл соединений/persistent connections/открывает закрываете каждый раз?
                  0
                  Memory leaks нет уже как с версии PHP 5.3.
                  Хотя при желании их можно сделать самому. Но в целом сборщик мусора всё собирает нормально.
                    +2
                    Желательно все же их не делать — сборщик мусора само по себе не очень быстрая штука, если у вас в памяти большой пул объектов — деградация производительности очень существенная — рассчитывать на него не стоит и теряется весь смысл.
                      0
                      Полностью согласен с вами.
                      Мой основной посыл был именно в том что PHP сам по себе не течёт уже давно.
                        0
                        так я ведь и не про PHP сам
                        да и PHP бывает всё же иногда течёт, может в PHP баг трекере глянуть, проскакивают memory leak баги
                    • UFO just landed and posted this here
                      +3
                      Memory leaks именно в самом php уже давно встречаются крайне редко — чаще всего они относятся к сторонним библиотекам.
                      В php-pm из асинхронного — прокси, производительность которого очень высока и с memory leaks в нем мы не сталкивались ни разу.
                      В качестве основной БД у нас используется Redis, другие бд также используем — с ними работа идет через очереди(beanstalkd). С учетом архитектуры php-pm — фактически у нас persistent connection закрывающиеся\открывающиеся каждые 10000 запросов.
                      Сейчас мы плавно переходим на amphp/aerys результаты еще вкуснее. Наверное мы бы переходили активнее, но производительности текущего решения
                      с php-pm нам хватает с огромным запасом.
                    0
                    Нормально работает, не течет.

                    Только библиотек (сетевое взаимодействие) меньше асинхронных, чем для Node.js, но работает не хуже.
                    0
                    >>по стандарту JSON5.
                    >>Not an official successor to JSON
                    Как бы взаимоисключающие.
                    Просто очередные «улучшатели» и советовать это использовать, наживать себе врагов я думаю :)
                      0
                      Как бы взаимоисключающие.

                      что взаимоисключающее? JSON5 это вполне себе стандарт, описывающие расширение JSON.

                        –4
                        >> Not an official
                        Это стандарт? Ок. Буду знать.
                        Учитывая что там в яваскрипте творится по «стандартам» идите вы со своим «улучшением»
                      +3
                      Список новостей о Yii2 за несколько недель
                      image
                      0
                      «Как связать Monolog и ELK» очень странная статья. Рэбиты, гельфы, зачем так сложно? Монолог пишет json, filebeat отправляет данные в logstash, где очень простой конфиг, logstash в elastic.

                      Only users with full accounts can post comments. Log in, please.