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

PHP-Дайджест № 158 (3 – 17 июня 2019)

PHP-Дайджест № 158 (3 – 17 июня 2019) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 alpha 1, DevConfX, принятые и новые RFC из PHP Internals, порция полезных инструментов, и многое другое.

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

PHP-Дайджест № 158 (3 – 17 июня 2019) - 2 Новости и релизы

PHP-Дайджест № 158 (3 – 17 июня 2019) - 6 PHP Internals

  • [RFC] Allow throwing exceptions from __toString() [10] — Предложение принято единогласно.
  • [RFC] Numeric Literal Separator [11] — Предложение преодолело порог на голосовании, и значит в PHP 7.4 можно будет использовать символ подчёркивания в качестве разделителя в числах:
    $i = 197_823_459; // 197823459
  • [RFC] Nullsafe Calls [12] — Старое предложение снова обсуждается в Internals. В нём рассматривается возможность добавления нового оператора ?->, который бы позволил делать безопасные цепочки вызовов методов, в случае когда возвращаемое значение может быть null:
    $o?->mayFail1()?->mayFail2()?->mayFail3()?->mayFail4();

    Подобное предложение есть и в ECMAScript [13], а в Hack данная возможность уже реализована [14].

  • [RFC] Alternative «use» syntax for Closures [15] — Автор предложения считает синтаксис use в замыканиях не очень удобным и предлагает перенести его в тело функции:
    Скрытый текст

    // Так сейчас
    $closure = function (
        ArgumentType $argument1,
        ArgumentType $argument2,
        ArgumentType $argument3,
        ArgumentType $argument4
    ) use ($importVariable1, &$importVariable2, $importVariable3, &$importVariable4): ReturnType {
        // ...
    };
    
    // Предлагается вот так
    $closure = function (
        ArgumentType $argument1,
        ArgumentType $argument2,
        ArgumentType $argument3,
        ArgumentType $argument4
    ): ReturnType {
        use $importVariable1, &$importVariable2;
        use $importVariable3, &$importVariable4;
    
        // ...
    };
    
  • audio PHP Internals News #13 [16] — Sara Goleman (релиз мнеджер PHP 7.2) и Derick Rethans (PHP 7.4) общаются на тему менеджмента релизов.
  • audio PHP Internals News #14 [17] — С Никитой Поповым об исключениях в __toString().

PHP-Дайджест № 158 (3 – 17 июня 2019) - 9 Инструменты

  • badoo/liveprof [18] — Инструмент мониторинга производительности приложений. На Хабре о нём был пост [19] и можно посмотреть демо [20].
  • BrainMaestro/composer-git-hooks [21] — Управление Git-хуками из сomposer.json.
  • hirak/prestissimo [22] — Плагин Composer для параллельного скачивания пакетов. Значительно ускоряет установку зависимостей.
  • ronanguilloux/IsoCodes [23] — Библиотека для валидации различных стандартных кодов: почтовые индексы (zip) всех стран, телефонные номера, кредитные карты, национальные идентификационные коды и другие.
  • zetrider/BotAuth [24] — Аутентификация при помощи ботов в соцсетях. habr Пост [25] в поддержку.

PHP-Дайджест № 158 (3 – 17 июня 2019) - 11 Symfony

PHP-Дайджест № 158 (3 – 17 июня 2019) - 13 Laravel

PHP-Дайджест № 158 (3 – 17 июня 2019) - 18 Yii

Security

PHP-Дайджест № 158 (3 – 17 июня 2019) - 22 Материалы для обучения

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

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

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

Прислать ссылку [58]
Поиск ссылок по всем дайджестам [59]
Предыдущий выпуск: PHP-Дайджест № 157 [60]

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

Источник [61]


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

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

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

[1] PHP 7.4.0 alpha 1: https://www.php.net/archive/2019.php#id2019-06-13-1

[2] полугодовой цикл тестирования: https://wiki.php.net/todo/php74#timetable

[3] типизированные свойства: https://stitcher.io/blog/typed-properties-in-php-74

[4] стрелочные функции: https://habr.com/ru/post/450544/

[5] UPGRADING: https://github.com/php/php-src/blob/php-7.4.0alpha1/UPGRADING

[6] Новое в PHP 7.4: https://habr.com/ru/company/funcorp/blog/454410/

[7] докладе Никиты Попова на PHP Russia: https://www.youtube.com/watch?v=teKnckg5x7I

[8] DevConf 2019 (Москва, 21 июня): https://devconf.ru/ru

[9] Пятиминутка PHP №54: https://5minphp.ru/episode54/

[10] [RFC] Allow throwing exceptions from __toString(): https://wiki.php.net/rfc/tostring_exceptions

[11] [RFC] Numeric Literal Separator: https://wiki.php.net/rfc/numeric_literal_separator

[12] [RFC] Nullsafe Calls: https://wiki.php.net/rfc/nullsafe_calls

[13] в ECMAScript: https://github.com/tc39/proposal-optional-chaining

[14] уже реализована: https://docs.hhvm.com/hack/expressions-and-operators/null-safe-member-selection

[15] [RFC] Alternative «use» syntax for Closures: https://wiki.php.net/rfc/alternative-closure-use-syntax

[16] PHP Internals News #13: https://phpinternals.news/13

[17] PHP Internals News #14: https://phpinternals.news/14

[18] badoo/liveprof: https://github.com/badoo/liveprof

[19] пост: https://habr.com/ru/company/badoo/blog/436364/

[20] демо: http://liveprof.org/

[21] BrainMaestro/composer-git-hooks: https://github.com/BrainMaestro/composer-git-hooks

[22] hirak/prestissimo: https://github.com/hirak/prestissimo

[23] ronanguilloux/IsoCodes: https://github.com/ronanguilloux/IsoCodes

[24] zetrider/BotAuth: https://github.com/zetrider/BotAuth

[25] Пост: https://habr.com/ru/post/455104/

[26] Неделя Symfony #650 (10-16 июня 2019): https://symfony.com/blog/a-week-of-symfony-650-10-16-june-2019

[27] Symfony CLI: https://habr.com/ru/post/451138/

[28] illuminatech/config: https://github.com/illuminatech/config

[29] pipe-dream/laravel: https://github.com/pipe-dream/laravel

[30] Видеобзор: https://www.youtube.com/watch?v=doUlmZdvP1o

[31] spatie/laravel-webhook-server: https://github.com/spatie/laravel-webhook-server

[32] spatie/laravel-webhook-client: https://github.com/spatie/laravel-webhook-client

[33] Анализ сервис-контейнера Laravel: https://matthiasnoback.nl/2019/06/laravel-observations-part-1/

[34] Рефакторинг в Actions: https://laravel.demiart.ru/refactoring-to-actions/

[35] 40 дополнительных правил валидации для Laravel: https://laravel.demiart.ru/additional-validation-rules/

[36] мейнтейнит Laravel: https://www.youtube.com/watch?v=a8xAxLzIFs8

[37] Интервью с Александром Макаровым, Yii core team: https://habr.com/ru/company/devconf/blog/455098/

[38] Используем Yii2. Пишем очередную CMS: https://habr.com/ru/post/454914/

[39] MyBB <= 1.8.20: From Stored XSS to RCE: https://blog.ripstech.com/2019/mybb-stored-xss-to-rce/

[40] Критическая уязвимость в WordPress admin-ajax.php: https://habr.com/ru/post/455918/

[41] Дженерики в PHP: https://www.daveliddament.co.uk/articles/php-generics-today-almost/

[42] Почему операции с float не точные и что с этим делать в PHP: https://jiripudil.cz/blog/dont-just-float-swim-with-the-floating-point

[43] 0.1 + 0.2 === 0.30000000000000004: http://0.30000000000000004.com/

[44] Нюансы и особенности работы isset(): https://medium.com/@liamhammett/a-look-at-phps-isset-df64df7158ab

[45] Как замокать финальные классы: https://www.tomasvotruba.cz/blog/2019/03/28/how-to-mock-final-classes-in-phpunit/

[46] dg/bypass-finals: https://github.com/dg/bypass-finals

[47] Явная архитектура (Explicit architecture): https://herbertograca.com/2019/06/05/reflecting-architecture-and-domain-in-code/

[48] hgraca/explicit-architecture-php: https://github.com/hgraca/explicit-architecture-php

[49] О тестах и типах: https://stitcher.io/blog/tests-and-types

[50] Курсоры БД в Doctrine: https://habr.com/ru/company/lamoda/blog/455571/

[51] PHP в 2019: лучше, чем вы о нём думаете: https://habr.com/ru/company/funcorp/blog/456024/

[52] PHP Мeetup #27, Минск: https://www.youtube.com/watch?v=Vh1O7_27CfM&list=PLsylgeGbOMvnGEdOmMx3eFFYhlqXoWXlD

[53] Лучшие доклады PHP Russia 2019: https://www.youtube.com/playlist?list=PLH-XmS0lSi_x7ETRLRuGewPOBKdqOdH3S

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

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

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

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

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

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

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

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