Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0, Symfony 4.2, Composer 1.8.0 и другие релизы, конец поддержки PHP 5.6 и PHP 7.0, свежие предложения из PHP Internals, порция полезных инструментов, видеозаписи докладов и многое другое.
Приятного чтения!



Короткая аудиоверсия дайджеста в подкасте Пятиминутка PHP Выпуск №44

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


  • PHP 7.3.0 — Долгожданный мажорный релиз PHP доставлен строго по расписанию. Спасибо всем контрибьюторам и релиз-менеджерам за проделанную работу! В свежей версии интерпретатора ряд улучшений:
    • Улучшения Heredoc и Nowdoc синтаксиса RFC
    • Функции json_encode() и json_decode() будут бросать исключение в случае ошибки и наличия соответствующего флага RFC
    • Возможность использовать запятую после последнего аргумента функции RFC
    • Добавлены функции array_key_first() и array_key_last() RFC
    • Новая функция hrtime(), которая возвращает время высокой точности и не зависит от системного времени PR
    • Добавлена функция is_countable() для проверки на перечислимость RFC
    • Использование ссылок в list() RFC
    • Значительное улучшение сборщика мусора улучшает работу с больши?м количеством объектов PR
    • Движок регулярных выражений обновлен до PCRE2 RFC
    Полный список изменений в документе UPGRADING.
    Очень рекомендую посмотреть руководство по миграции с PHP 7.2.x на PHP 7.3.x, спасибо lex111 за перевод.
  • Свет также увидели обновления PHP 5.6.39, PHP 7.0.33, PHP 7.1.25 и PHP 7.2.13. И это последние релизы веток 5.6 и 7.0, а PHP 7.1 переходит в режим поддержки безопасности. Таким образом, на данный момент актуальными остаются только ветки PHP 7.2 и PHP 7.3.
  • PHP на AWS Lambda — На конференции AWS re:Invent 2018, кроме всего прочего, анонсирована поддержка кастомных рантаймов для AWS Lambda. PHP из коробки поддерживается через stackery/php-lambda-layer, но можно сделать и свою реализацию. Это значит, что вместо костылей в виде запуска через Nodejs или Go, теперь можно писать полноценные лямбды на чистом PHP.
  • Composer 1.8.0
  • CakePHP 3.7.0
  • PHPUnit 7.5.0

PHP Internals


  • [RFC] FFI — Foreign Function InterfaceКонцепт от Дмитрия Стогова теперь оформлен в виде полноценного предложения. Реализация даст возможность использовать функции и структуры данных из C-модулей напрямую. В качестве примера можно посмотреть на PHP-биндинг для TensorFlow. Большие возможности, правда, открывают и широкий простор для потенциальных проблем и уязвимостей, поэтому предлагается по умолчанию разрешить FFI только в CLI-скриптах и предзагруженных файлах.
  • [RFC] Covariant Returns and Contravariant Parameters — Предлагается сделать более консистентным типы, в частности, разрешить «сужать» тип возвращаемого значения в наследниках, и «расширять» тип параметров.
    Скрытый текст
    interface X {
      function m(Y $z): X;
    }
    interface Y extends X {
      // Тут можно будет сужать тип
      function m(X $z): Y;
    }
    
    
    
    interface Concatable {
        function concat(Iterator $input); 
    }
     
    class Collection implements Concatable {
        // А тут можно будет расширять тип
        function concat(iterable $input) {/* . . . */}
    }
    


Инструменты


  • spatie/period — Библиотека позволяет делать сложные сравнения дат, например, найти пересечения периодов, разницу, пробелы, крайние границы и прочее.
  • scrivo/highlight.php — Порт highlight.js, который позволяет подсвечивать синтаксис на сервере. Интеграция с markdown через spatie/commonmark-highlighter.
  • 3v4l.org/live — Интерактивный онлайн PHP шелл (REPL).
  • j6s/phparch — Библиотека для архитектурного тестирования PHP-проектов, вдохновленная archlint (C#) и archunit (Java). Разработка в процессе.
  • halaxa/json-machine — Потоковое чтение (декодирование) JSON. Для потокового кодирования подойдет violet-php/streaming-json-encoder.
  • DivineOmega/password_exposed — Проверяет с помощью haveibeenpwned.com API был пароль скомпрометирован.
  • skollro/alexa-php-sdk — SDK для разработки скилов для Amazon Alexa на PHP.
  • pyrech/composer-changelogs — В удобном виде выводит информацию об обновленных пакетах после выполнения composer update.
  • RubixML/RubixML — Библиотека для применения машинного обучения на PHP. Альтернатива php-ai/php-ml.


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




Аудио и видеоматериалы




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



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

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

Больше новостей и комментариев в телеграм-канале PHP Digest.

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

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


  1. klassik16
    10.12.2018 12:31
    +1

    В CMS я бы добавил ещё и очередной релиз друпала — drupal 8.6.4


  1. bashkarev
    11.12.2018 13:54
    +1

    В 7.3 добавили функцию \gc_status(), не нашел нигде в changelog. Возможно уберут с сл. версии, а может забыли.