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

0870f16a9c6f4066aca9c6230cfdda33.jpg


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



f574e9991c42407b8fa789a66b854f8d.png Новости и релизы


  • 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

c9ee7880391644e4aef6cc28ca681ab0.png PHP Internals


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

cf862d9072784d04b621238ec137f2ca.png Инструменты


  • 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.

329bec7c1e914963a1c5d2f2bfe99995.png Материалы для обучения


  • 96b65e92179a40f2bd1884549973ddd5.png Symfony
    • Пачка уязвимостей в компонентах Symfony: CVE-2017–16653, CVE-2017–16652, CVE-2017–16654, CVE-2017–16790
    • Неделя Symfony #566 (30 октября — 5 ноября 2017)
    • Неделя Symfony #567 (6–12 ноября 2017)
    • Неделя Symfony #568 (13–19 ноября 2017)
    • ruСравнение PHP 7.1 и 7.2 производительности (на Docker и Symfony Flex)

  • 569de4298b764a33894aa517e74324f9.png Yii
    • habrYii 2.0.13
    • Yii development notes #17
    • Обсуждения планов и идей для Yii 2.1 на русском и английском, по результатам которых сформирована доска в Trello, где можно отслеживать статус идей.

  • 314bd0f0dfc54e3fa7f0c0daef1a2d25.png Laravel
    • TheOrchid/WebSocket — WebSockets сервер для Laravel на базе Ratchet.
    • akalongman/laravel-lodash — Различные полезности для Laravel >=5.5.
    • habrСамотестируемая система с оповещениями на Laravel + Bitbucket + HipChat

  • Async PHP
    • clue/php-stdio-react — Библиотека для удобной работы с консольным вводом/выводом (STDIN, STDOUT) в асинхронном режиме.
    • seregazhuk/php-react-promise-testing — Хелпер для PHPUnit для тестирования промисов ReactPHP.
    • О магии асинхронного PHP
    • Расширение дочерних процессов для ReactPHP
    • Создание клиента для Memcached на ReactPHP: События
    • habrСоздаем сервер для потокового видео — Глава из книги по асинхронному PHP.

  • CMS
    • WordPress 4.9 «Tipton»
    • SQL injection уязвимости в WordPress — технические детали, бэкграунд.
    • postlight/headless-wp-starter — WordPress в качестве RESTful бекенда и React на фронте.
    • tim-field/graphql-wp — GraphQL для WordPress.
    • Magento Tech Digest #6 — News, Tutorials and Tools (October 31 — November 13, 2017)

  • Оптимизация «switch» выражений в PHP 7.2
  • Экспорт функций а-ля Javascript — Интересный трюк с использованием возвращаемого значения require:
     function (int $x): int {
            return $x * 2;
        },
        'answer' => function (): int {
            return 42;
        }
    ];
    

     $mul] = require 'foo.php';
    
    var_dump($mul(21)); // int(42)
    

  • Как деплоить с помощью Deployer — Прислал Антон Багаев.
  • О внедрении профайлера blackfire.io в CI-процесс
  • Как правильно читать большие файлы на PHP
  • Интересная заметка Никиты Попова о производительности при использовании PHP-Parser
  • ruКак связать Monolog и ELK
  • ruОптимизация MySQL: индексы, медленные запросы, конфигурация
  • habrРасстояние Левенштейна в MySQL и алгоритмы нечёткого поиска средствами PHP
  • habrВо всём виноват PHP OPCache?
  • habrGolang, PHP, Кинопоиск и Telegraph — Что их объединяет?

cc24d9c95c9841988f8299a8b285e6f6.png Занимательное


  • Все о слониках PHP


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

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

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

© Habrahabr.ru