PHP-Дайджест № 161 (15 – 29 июля 2019)

ixqgn6b0vi_6h0pulnteh1d2tj8.jpeg

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 beta 1, PhpStorm 2019.2, PSR-12, обзор RFC предложений из PHP Internals, новости с Laracon US, подкасты, порция полезных инструментов, и многое другое.

Приятного чтения!


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


  • PHP 7.4.0 beta 1 — С первым бета-релизом заканчивается фаза активной разработки, а значит список новых возможностей и изменений в ветке 7.4 можно считать финальным. (За исключением short tags). Следующая бета ожидается 8 августа.
  • habrPhpStorm 2019.2 — Типизированные свойства PHP 7.4, поиск дубликатов, подсветка и проверка регулярных выражений, EditorConfig, Shell-скрипты и многое другое.
  • Стартовало голосование по PSR-12, расширенному стандарту стиля кодирования, который должен прийти на смену PSR-2.
  • PHP Meetup в Москве (офис SkyEng), 22 августа 2019 — habrАнонс митапа, плавно переходящего в BeerPHP дринкап (в Москве и онлайне)
  • habrLet’s play a little game with Lamoda — 16 августа в московском офисе Lamoda пройдёт PHP Quest. Чтобы поучаствовать, необходимо до 5 августа заполнить анкету и решить головоломку.
  • PHP fwdays»20 — Сall for papers — Стартовал приём заявок на доклады на конференцию PHP fwdays»20, которая пройдёт 30 мая 2020 в Киеве.


c9ee7880391644e4aef6cc28ca681ab0.png PHP Internals


  • [RFC] Deprecations for PHP 7.4 — Все пункты из предложения преодолели порог на голосовании и будут объявлены устаревшими в PHP 7.4.
  • [RFC] Escape PDO »?» parameter placeholder — Предложение экранировать символ? в PDO принято и смержено в PHP 7.4.
  • [RFC] Explicit call-site pass-by-reference — Старое предложение от Никиты снова на обсуждении. На данный момент тот факт, что функция принимает аргумент по ссылке обозначается только в определении самой функции:
    function byRef(&$ref) {...}
    byRef($var);
    
    Предлагается сделать возможным явное указание передачи по ссылке. Тем самым предупреждая разработчика о том, что переданная переменная изменится:
    function byRef(&$ref) {...}
    byRef(&$var);
    
  • [RFC] Namespace-scoped declares — Ещё один старый RFC поднят на обсуждение. Изначально предлагалось сделать возможным установку директив интерпретатора для целых пространств имён, вместо обявления declare(); в каждом файле. Это может быть удобно, особенно если будут приняты strict_operators.
    Скрытый текст
    namespace_declare('Vendor\Lib', [
        'strict_types' => 1,
        'strict_operators' => 1,
        ...
    ]);
    
    Теперь обсуждается возможность объявления для папок вместо пространств имён — это решает проблемы реализации.
  • [RFC] Deprecate PHP Short open tags v2 — В оригинальном предложении рассматривалась идея убрать возможность использования коротких тегов . Однако уже после того, как оно было принято, посыпались возмущения и споры. Данный RFC предлагает более мягкий путь: если в php.ini включёна опция short_open_tag, то при первом использовании будет брошен Notice. Несмотря на то что PHP 7.4 уже в бете, в случае принятия, реализация будет вмержена с разрешения релиз-менеджеров.


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


  • krakjoe/tombs — Расширение для поиска «мёртвого» кода. Подключаете на продакшене не опасаясь проблем с производительностью, ждёте день/неделю/месяц, затем смотрите статистику и видите, какие функции/методы ни разу не выполнялись. Подробнее в посте автора.
  • krakjoe/stat — Ещё один крутой концепт от Joe Watkins. Расширение для профайлинга PHP-приложений на продакшене. Отдаёт информацию в параллельном потоке выполнения без накладных расходов по производительности. Подробнее в посте.
  • jeremeamia/iter8 — Итерация и трансформация массивов с помощью генераторов. Альтернатива классике от Никиты Попова: Nikic/Iter.
  • cpliakas/git-wrapper — PHP-оболочка для работы с Git.
  • exussum12/coverageChecker — Инструмент позволяет инкрементально внедрять хорошие практики. По сути, baseline для других инструментов. Например, можно требовать 90% покрытия тестами, но не для всего кода, я для того, который был добавлен в коммите.


96b65e92179a40f2bd1884549973ddd5.png Symfony


314bd0f0dfc54e3fa7f0c0daef1a2d25.png Laravel


  • videoВыступление Тейлора на Laracon US:
    • Laravel 6 выйдет в августе
    • Фреймворк перейдёт на Semver (компоненты уже)
    • Новый брендинг
    6ftsrl9uqe6w7v2p5ldpiik5j-w.png
    • Представлен Laravel Vapor — Платный сервис для развёртывания Laravel-приложений в инфраструктуре AWS: Lambda, RDS, CloudFront, S3, CloudWatch. Работает на кастомном рантайме (не SAM или Serverless.com). Описываете yaml, деплоите с помощью консольной утилиты, настраиваете и мониторите в веб-интерфейсе или CLI.
    • Конспект доклада
  • Что такое AWS Lambda и как Laravel Vapor его использует.
  • calebporzio/livewire — Фронтенд фреймворк для Laravel, который позволяет делать биндинги из Blade к PHP-классам и не писать дополнительного JS-кода. (Как работает под капотом не понял. Похоже, используется turbolinks. Поправьте, пожалуйста, кто смотрел).
  • orchestral/testbench — Пакет для упрощения тестирования при разработке собственных пакетов для Laravel.
  • Рекомендации о том, как ускорить написание тестов для Laravel-приложений.
  • habrLaravel Event Projector и концепция порождения событий.


569de4298b764a33894aa517e74324f9.png Yii


Async PHP


Serverless


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


8dcc236774104f8286a40ceaea553820.png Аудио/Видео

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

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

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

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

© Habrahabr.ru