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

в 3:02, , рубрики: laravel, php, PHP 7.4, php-дайджест, ReactPHP, serverless, symfony, yii, дайджест, Разработка веб-сайтов

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

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

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

PHP-Дайджест № 161 (15 – 29 июля 2019) - 2 Новости и релизы

PHP-Дайджест № 161 (15 – 29 июля 2019) - 6 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('VendorLib', [
        'strict_types' => 1,
        'strict_operators' => 1,
        ...
    ]);
    

    Теперь обсуждается возможность объявления для папок вместо пространств имён – это решает проблемы реализации.

  • [RFC] Deprecate PHP Short open tags v2 — В оригинальном предложении рассматривалась идея убрать возможность использования коротких тегов <?. Однако уже после того, как оно было принято, посыпались возмущения и споры. Данный RFC предлагает более мягкий путь: если в php.ini включёна опция short_open_tag, то при первом использовании <? будет брошен Notice. Несмотря на то что PHP 7.4 уже в бете, в случае принятия, реализация будет вмержена с разрешения релиз-менеджеров.

PHP-Дайджест № 161 (15 – 29 июля 2019) - 7 Инструменты

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

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

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

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

Async PHP

Serverless

PHP-Дайджест № 161 (15 – 29 июля 2019) - 15 Материалы для обучения

PHP-Дайджест № 161 (15 – 29 июля 2019) - 18 Аудио/Видео

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

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

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

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

Автор: Роман Пронский

Источник

  1. Albert:

    У меня не активировалось, помог с активацией vk.com/kleba37

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js