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


    Свежая подборка со ссылками на новости и материалы. В выпуске: 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

    • +50
    • 13,4k
    • 7
    Поделиться публикацией

    Комментарии 7

      –6

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

        +5

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

        +14
        «Лагавель» — это с намёком на быстродействие 6-й версии? :)
          –3
          Погоня за 6 версией в след за рельсами?
            0
            Предлагается сделать возможным явное указание передачи по ссылке.
            У меня дежавю, или такое уже было (а потом стало deprecated?)
              0

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

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое