Свежая подборка со ссылками на новости и материалы. В выпуске: 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

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


  1. Dead_Angel
    20.11.2017 04:14

    Я для создания вебсокета в laravel использовал это — github.com/Askedio/laravel-ratchet


  1. nesttor
    20.11.2017 12:05

    Бро, а асинхронный пхп стоит того? Вижу много топиков на эту тему начало всплывать, но все мне как-то не сильно вериться в том, что это работает как надо. Что думаешь?


    1. andrewnester
      20.11.2017 13:01

      стоит, если вам надо неблокирующий I/O
      а что значит «работает как надо»?


    1. pronskiy Автор
      20.11.2017 13:48

      Есть задачи где стоит использовать и PHP отлично справляется. Есть проблемы общие для любого асинхронного кода, и есть нюансы PHP. Сам использую на продакшне в нескольких проектах.
      Еще часто использую leproxy (который на PHP), когда нужно быстро поднять прокси :-)


      1. babylon
        20.11.2017 16:08

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


    1. p4s8x
      20.11.2017 14:13
      +1

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

      но все мне как-то не сильно вериться в том, что это работает как надо

      Нам тоже не верилось тогда, что мы сможем держать такую нагрузку на php, но мы же программисты, да? Собрали за недельку тестовый билд, да погоняли…


      1. andrewnester
        20.11.2017 14:18
        +1

        memory leaks нету? и как вы хендлите подключения к базе? какой-то пулл соединений/persistent connections/открывает закрываете каждый раз?


        1. Fedot
          20.11.2017 14:27

          Memory leaks нет уже как с версии PHP 5.3.
          Хотя при желании их можно сделать самому. Но в целом сборщик мусора всё собирает нормально.


          1. p4s8x
            20.11.2017 15:16

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


            1. Fedot
              20.11.2017 18:36

              Полностью согласен с вами.
              Мой основной посыл был именно в том что PHP сам по себе не течёт уже давно.


              1. andrewnester
                21.11.2017 12:56

                так я ведь и не про PHP сам
                да и PHP бывает всё же иногда течёт, может в PHP баг трекере глянуть, проскакивают memory leak баги


          1. ivorobioff
            20.11.2017 19:37

            ну c react это другой компот… когда пхп используется только для обработки реквестов и на этом убивается, то мелкие memory leaks могут показаться незаметными или не значительнымы… а когда приложение все время работает как в случае с react то даже эти мелкие memory leaks могут оказаться большой проблемой. Вообще пхп сам по себе может и норм, но вот мне лично стремно laravel или symfony ставить на react боюсь, что там есть вещи такие которые не очищаются полагаясь на то что все очистится когда процесс пхп умрет после обработки реквеста.


        1. p4s8x
          20.11.2017 15:11

          Memory leaks именно в самом php уже давно встречаются крайне редко — чаще всего они относятся к сторонним библиотекам.
          В php-pm из асинхронного — прокси, производительность которого очень высока и с memory leaks в нем мы не сталкивались ни разу.
          В качестве основной БД у нас используется Redis, другие бд также используем — с ними работа идет через очереди(beanstalkd). С учетом архитектуры php-pm — фактически у нас persistent connection закрывающиеся\открывающиеся каждые 10000 запросов.
          Сейчас мы плавно переходим на amphp/aerys результаты еще вкуснее. Наверное мы бы переходили активнее, но производительности текущего решения
          с php-pm нам хватает с огромным запасом.


    1. OnYourLips
      20.11.2017 19:11

      Нормально работает, не течет.

      Только библиотек (сетевое взаимодействие) меньше асинхронных, чем для Node.js, но работает не хуже.


  1. zorn_v
    20.11.2017 12:46

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


    1. Fesor
      21.11.2017 00:43

      Как бы взаимоисключающие.

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


      1. zorn_v
        23.11.2017 18:02

        >> Not an official
        Это стандарт? Ок. Буду знать.
        Учитывая что там в яваскрипте творится по «стандартам» идите вы со своим «улучшением»


  1. kowap
    20.11.2017 12:46
    +1

    Список новостей о Yii2 за несколько недель
    image


    1. andrewnester
      20.11.2017 13:03

      Можете прочитать про интересное issue здесь :)
      github.com/yiisoft/yii2/issues/9438


  1. koluchiy01
    20.11.2017 13:36

    «Как связать Monolog и ELK» очень странная статья. Рэбиты, гельфы, зачем так сложно? Монолог пишет json, filebeat отправляет данные в logstash, где очень простой конфиг, logstash в elastic.