- PVSM.RU - https://www.pvsm.ru -

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

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 [12] — Все пункты из предложения преодолели порог на голосовании и будут объявлены устаревшими в PHP 7.4.
  • [RFC] Escape PDO "?" parameter placeholder [13] — Предложение экранировать символ? в PDO принято и смержено в PHP 7.4.
  • [RFC] Explicit call-site pass-by-reference [14] — Старое предложение от Никиты снова на обсуждении. На данный момент тот факт, что функция принимает аргумент по ссылке обозначается только в определении самой функции:
    function byRef(&$ref) {...}
    byRef($var);
    

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

    function byRef(&$ref) {...}
    byRef(&$var);
    
  • [RFC] Namespace-scoped declares [15] — Ещё один старый RFC поднят на обсуждение. Изначально предлагалось сделать возможным установку директив интерпретатора для целых пространств имён, вместо обявления declare(); в каждом файле. Это может быть удобно, особенно если будут приняты strict_operators [16].
    Скрытый текст

    namespace_declare('VendorLib', [
        'strict_types' => 1,
        'strict_operators' => 1,
        ...
    ]);
    

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

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

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

  • krakjoe/tombs [19] — Расширение для поиска «мёртвого» кода. Подключаете на продакшене не опасаясь проблем с производительностью, ждёте день/неделю/месяц, затем смотрите статистику и видите, какие функции/методы ни разу не выполнялись. Подробнее в посте автора [20].
  • krakjoe/stat [21] — Ещё один крутой концепт от Joe Watkins. Расширение для профайлинга PHP-приложений на продакшене. Отдаёт информацию в параллельном потоке выполнения без накладных расходов по производительности. Подробнее в посте [22].
  • jeremeamia/iter8 [23] — Итерация и трансформация массивов с помощью генераторов. Альтернатива классике от Никиты Попова: Nikic/Iter [24].
  • cpliakas/git-wrapper [25] — PHP-оболочка для работы с Git.
  • exussum12/coverageChecker [26] — Инструмент позволяет инкрементально внедрять хорошие практики. По сути, 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 Аудио/Видео

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

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

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

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

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

Источник [73]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/325344

Ссылки в тексте:

[1] PHP 7.4.0 beta 1: https://php.net/archive/2019.php#2019-07-25-1

[2] список новых возможностей и изменений: https://github.com/php/php-src/blob/php-7.4.0beta1/UPGRADING

[3] short tags: #short_tags

[4] PhpStorm 2019.2: https://habr.com/ru/company/JetBrains/blog/461449/

[5] Стартовало голосование: https://groups.google.com/forum/#!msg/php-fig/1uaeSMaDGbk/Fiei3bSVEQAJ

[6] PSR-12: https://github.com/php-fig/fig-standards/blob/master/proposed/extended-coding-style-guide.md

[7] PHP Meetup в Москве (офис SkyEng), 22 августа 2019: https://panda-meetup.ru/msk-php-meetup

[8] Анонс митапа, плавно переходящего в BeerPHP дринкап (в Москве и онлайне): https://habr.com/ru/company/skyeng/blog/460523/

[9] Let's play a little game with Lamoda: https://habr.com/ru/company/lamoda/blog/460999/

[10] анкету: https://tech.lamoda.ru/phpquest#rec116900252

[11] PHP fwdays’20 – Сall for papers: https://php.cfp.fwdays.com/

[12] [RFC] Deprecations for PHP 7.4: https://wiki.php.net/rfc/deprecations_php_7_4

[13] [RFC] Escape PDO "?" parameter placeholder: https://wiki.php.net/rfc/pdo_escape_placeholders

[14] [RFC] Explicit call-site pass-by-reference: https://wiki.php.net/rfc/explicit_send_by_ref

[15] [RFC] Namespace-scoped declares: https://wiki.php.net/rfc/namespace_scoped_declares

[16] strict_operators: https://wiki.php.net/rfc/strict_operators

[17] [RFC] Deprecate PHP Short open tags v2: https://wiki.php.net/rfc/deprecate_php_short_tags_v2

[18] оригинальном предложении: https://wiki.php.net/rfc/deprecate_php_short_tags

[19] krakjoe/tombs: https://github.com/krakjoe/tombs

[20] посте автора: https://blog.krakjoe.ninja/2019/07/trimming-phat.html

[21] krakjoe/stat: https://github.com/krakjoe/stat

[22] посте: https://blog.krakjoe.ninja/2019/07/nailed-lids.html

[23] jeremeamia/iter8: https://github.com/jeremeamia/iter8

[24] Nikic/Iter: https://github.com/Nikic/Iter

[25] cpliakas/git-wrapper: https://github.com/cpliakas/git-wrapper

[26] exussum12/coverageChecker: https://github.com/exussum12/coverageChecker

[27] SymfonyCloud: https://symfony.com/blog/symfonycloud-from-early-access-to-general-availability

[28] Пример использования: https://jolicode.com/blog/how-we-run-redirection-io-on-symfonycloud

[29] Установка и настройка Sonata Admin на Symfony 4: https://habr.com/ru/post/460345/

[30] Неделя Symfony #656 (22-28 июля 2019): https://symfony.com/blog/a-week-of-symfony-656-22-28-july-2019

[31] Выступление Тейлора на Laracon US: https://www.youtube.com/watch?v=XsPeWjKAUt0

[32] Laravel Vapor: https://vapor.laravel.com/

[33] Конспект доклада: https://mattstauffer.com/blog/introducing-laravel-vapor/

[34] Что такое AWS Lambda и как Laravel Vapor его использует: https://divinglaravel.com/what-is-aws-lambda-and-how-laravel-vapor-uses-it

[35] calebporzio/livewire: https://github.com/calebporzio/livewire

[36] turbolinks: https://github.com/turbolinks/turbolinks

[37] orchestral/testbench: https://github.com/orchestral/testbench

[38] как ускорить написание тестов для Laravel-приложений: https://jasonmccreary.me/articles/lower-time-testing-existing-laravel-application/

[39] Laravel Event Projector: https://habr.com/ru/company/otus/blog/460683/

[40] Yii достиг первой цели по сбору средств на Open Collective: https://opencollective.com/yiisoft/updates/first-funding-goal-is-done

[41] Yii 2.0.23 и разработка Yii 3: https://yiiframework.ru/news/244/yii-2023-i-razrabotka-yii-3

[42] Добавляем базу данных: https://www.youtube.com/watch?v=yjsLaCTefzY

[43] Парсим тело запроса: https://www.youtube.com/watch?v=lio47OF27EQ

[44] Как делать микросервисы на PHP: https://habr.com/ru/post/460855/

[45] swoft: https://github.com/swoft-cloud/swoft

[46] немного про Swoft: https://habr.com/ru/post/460147/

[47] Запускаем Laravel Artisan на AWS Lambda: https://blog.deleu.dev/deploying-laravel-artisan-on-aws-lambda/

[48] bref: https://github.com/brefphp/bref

[49] пример решения задачи с использованием AWS Lambda: https://blog.servmask.com/serverless-for-php-developers/

[50] Serverless PHP на App Engine: https://medium.com/firebase-developers/serverless-php-on-app-engine-firestore-c22a119dc608

[51] Препарируем PHP. Как устроены while, foreach, array_walk: https://habr.com/ru/company/funcorp/blog/460285/

[52] Разработка под Docker. Локальное окружение. Часть 2: https://habr.com/ru/post/460173/

[53] Разделение обязанностей: https://matthiasnoback.nl/2019/07/dividing-responsibilities-part-1/

[54] Простейший бот для Telegram на PHP: https://medium.com/@taras.ziabukhin/really-simple-telegram-bot-php-c23097315912

[55] tahrz/simple-telegram-bot: https://github.com/tahrz/simple-telegram-bot

[56] Разбор RCE-уязвимости в TYPO3: https://blog.ripstech.com/2019/typo3-overriding-the-database/

[57] как писать PHP приложения для облачной инфраструктуры: https://withblue.ink/2019/07/24/cloud-native-container-ready-php.html

[58] Как написать плагин для PhpStorm: https://dev.to/kristijankanalas/i-wrote-a-phpstorm-plugin-1job

[59] PHP Internals News #18: https://phpinternals.news/18

[60] PHP Internals News #19: https://phpinternals.news/19

[61] PHP Internals News #20: https://phpinternals.news/20

[62] Пятиминутка PHP №57: https://5minphp.ru/episode57/

[63] обзоров ICFPC 2019: https://tonsky.livejournal.com/322258.html

[64] первые шаги: https://twitter.com/5minphp/status/1152946737910308865

[65] Mini AI Cup 4: https://habr.com/ru/company/mailru/blog/459232/

[66] личку: https://habrahabr.ru/conversations/pronskiy/

[67] почту: mailto:roman@pronskiy.com

[68] твиттер: https://twitter.com/pronskiy

[69] PHP Digest: https://t.me/phpdigest

[70] Прислать ссылку: https://bit.ly/php-digest-add-link

[71] Поиск ссылок по всем дайджестам: https://pronskiy.com/php-digest/

[72] Предыдущий выпуск: PHP-Дайджест № 160: https://habr.com/ru/post/460022/

[73] Источник: https://habr.com/ru/post/461669/?utm_source=habrahabr&utm_medium=rss&utm_campaign=461669