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

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



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



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 уже в бете, в случае принятия, реализация будет вмержена с разрешения релиз-менеджеров.

Инструменты


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

Symfony



Laravel



Yii



Async PHP



Serverless



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




Аудио/Видео



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

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

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

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

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


  1. VolCh
    29.07.2019 09:00
    -7

    Какой сложный план закопать стюардессу придумали… Но явно лучше начального, Parse error — гениально. Хотя и не логично :)


    1. VolCh
      29.07.2019 14:45
      +4

      Вам сложно меня понять. Я с прошлого тысялетия мечтал, чтобы отключили <? везде...


  1. riot26
    29.07.2019 10:38
    +11

    «Лагавель» — это с намёком на быстродействие 6-й версии? :)


  1. shepardeg
    29.07.2019 13:57
    -2

    Погоня за 6 версией в след за рельсами?


  1. morgot
    30.07.2019 16:59

    Предлагается сделать возможным явное указание передачи по ссылке.
    У меня дежавю, или такое уже было (а потом стало deprecated?)


    1. VolCh
      30.07.2019 17:36

      Для объектов вроде было только.