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

PHP-Дайджест № 153 (25 марта – 8 апреля 2019)

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: принят PSR-14 Event Dispatcher, JIT в PHP 8, тройка RFC-предложений из PHP Internals, порция полезных инструментов, и многое другое.

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

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 2 Новости и релизы

  • PHP 7.3.4 [1]
  • PHP 7.2.17 [2]
  • PHP 7.1.28 [3]
  • Packagist.org переезжает на AWS [4]
  • habr PhpStorm 2019.1 [5] — Отладка шаблонов Twig и Blade, поиск мертвого кода, улучшенное автодополнение и многое другое.
  • Принят PSR-14 Event Dispatcher [6] — Новый стандарт регламентирует работу с событиями в приложении. Документ определяет три интерфейса: EventDispatcherInterface, StoppableEventInterface и ListenerProviderInterface, а также описывает характеристики, которым должны соответствовать все элементы и рекомендации по реализации. Подробнее можно прочитать в серии постов [7] от одного из участников рабочей группы стандарта Ларри Гарфильда.
    Примечательно, что новый диспатчер в Symfony 4.3 [8], по сути, совместим со стандартом, но как минимум из-за использования тайпхинта object, который доступен только в PHP 7.2+, использовать стандарт непосредственно в Symfony пока нельзя.
    Другой пример реализации стандарта yiisoft/event-dispatcher [9], вероятно, будет использоваться в Yii 3.

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 4 PHP Internals

  • [RFC] JIT [10] — Предложение принято для PHP 8.0, а вот идея включить возможность в экспериментальном режиме в PHP 7.4 не нашла поддержки.
    В тему отличная статья Joe Watkins о том, что такое JIT вообще и что даст его реализация для PHP [11].
  • [RFC] Change the precedence of the concatenation operator [12] — На данный момент операторы конкатенации . и математические +, - имеют одинаковый приоритет и выполняются слева направо. Предлагается понизить приоритет конкатенации:
    Скрытый текст

    echo "sum: " . $a + $b;
     
    // текущее поведение
    echo ("sum: " . $a) + $b;
     
    // предлагаемое поведение
    echo "sum :" . ($a + $b);
    
  • [RFC] Nullable Casting [13] — При кастинге в примитивный тип предлагается сделать возможность кастить в null, то есть возможность использовать (?int)$x помимо (int)$x.
  • [RFC] Spread Operator in Array Expression [14] — Снова предлагается добавить оператор ... для массивов. В обновленном предложении убрана поддержка массивов с нечисловыми ключами.
    Скрытый текст

    $parts = ['apple', 'pear'];
    $fruits = ['banana', 'orange', ...$parts, 'watermelon'];
    // ['banana', 'orange', 'apple', 'pear', 'watermelon'];
    
  • video Подкаст PHP Internals News #4: Short Arrow Functions with Nikita Popov [15], #3: Abolish Narrow Margins and Weak References with Joe Watkins [16]

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 6 Инструменты

  • ivanakimov/hashids.php [17] — Удобная библиотека для обфускации целочисленных идентификаторов.
  • smalot/pdfparser [18] — Библиотека для парсинга PDF-файлов и извлечения информации.
  • YOURLS/YOURLS [19] — Сервис сокращения ссылок.
  • cyrus-and/fracker [20] — Инструмент позволяет в удобном виде отслеживать вызовы функций в PHP и будет полезен для исследователей безопасности.
  • wasmerio/php-ext-wasm [21] — Экспериментальное расширение, которое позволяет запускать бинарники WebAssembly прямо из PHP, подгружая их динамически. В последней версии автор увеличил производительность в 29 раз [22] и теперь модули выполняются уже быстрее, чем аналогичные реализованные на PHP.

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 7 Symfony

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 8 Laravel

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 11 Yii

  • Preparing Yii for the long run [34] — Теперь фреймворк можно официально поддержать материально. Особенно актуально для тех, у кого мало времени, но поддержать хочется.
  • Yii development notes #27 [35]

Async PHP

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 13 Материалы для обучения

PHP-Дайджест № 153 (25 марта – 8 апреля 2019) - 20 Занимательное

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

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

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

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

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

Источник [59]


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

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

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

[1] PHP 7.3.4: https://www.php.net/ChangeLog-7.php#7.3.4

[2] PHP 7.2.17: https://www.php.net/ChangeLog-7.php#7.2.17

[3] PHP 7.1.28: https://www.php.net/ChangeLog-7.php#7.1.28

[4] Packagist.org переезжает на AWS: https://blog.packagist.com/an-update-on-packagist-org-hosting/

[5] PhpStorm 2019.1: https://habr.com/ru/company/JetBrains/blog/445976/

[6] Принят PSR-14 Event Dispatcher: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-14-event-dispatcher.md

[7] серии постов: https://steemit.com/php/@crell/psr-14-a-major-event-in-php

[8] новый диспатчер в Symfony 4.3: https://symfony.com/blog/new-in-symfony-4-3-simpler-event-dispatching

[9] yiisoft/event-dispatcher: https://github.com/yiisoft/event-dispatcher

[10] [RFC] JIT: https://wiki.php.net/rfc/jit#proposed_voting_choices

[11] что такое JIT вообще и что даст его реализация для PHP: https://blog.krakjoe.ninja/2019/03/php-gr8.html

[12] [RFC] Change the precedence of the concatenation operator: https://wiki.php.net/rfc/concatenation_precedence

[13] [RFC] Nullable Casting: https://wiki.php.net/rfc/nullable-casting

[14] [RFC] Spread Operator in Array Expression: https://wiki.php.net/rfc/spread_operator_for_array

[15] #4: Short Arrow Functions with Nikita Popov: https://derickrethans.nl/phpinternalsnews-04.html

[16] #3: Abolish Narrow Margins and Weak References with Joe Watkins: https://derickrethans.nl/phpinternalsnews-03.html

[17] ivanakimov/hashids.php: https://github.com/ivanakimov/hashids.php

[18] smalot/pdfparser: https://github.com/smalot/pdfparser

[19] YOURLS/YOURLS: https://github.com/YOURLS/YOURLS

[20] cyrus-and/fracker: https://github.com/cyrus-and/fracker

[21] wasmerio/php-ext-wasm: https://github.com/wasmerio/php-ext-wasm

[22] увеличил производительность в 29 раз: https://medium.com/wasmer/php-ext-wasm-migrating-from-wasmi-to-wasmer-4d1014f41c88

[23] symfony/mailer: https://github.com/symfony/mailer

[24] Неделя Symfony #639 (25-31 марта 2019): https://symfony.com/blog/a-week-of-symfony-639-25-31-march-2019

[25] Неделя Symfony #640 (1-7 апреля 2019): https://symfony.com/blog/a-week-of-symfony-640-1-7-april-2019

[26] thepinecode/blade-filters: https://github.com/thepinecode/blade-filters

[27] Пост от автора: https://pineco.de/laravel-blade-filters/

[28] 20 малоизвестных фишек Laravel: https://meramustaqbil.com/2019/03/23/20-un-known-gems-of-laravel/

[29] Работаем с null-объектами в Laravel: https://medium.com/@maxalmonte14/working-with-null-objects-in-laravel-b24d7ccf03dc

[30] Гайдлайны по PHP и Laravel от Spatie: https://guidelines.spatie.be/code-style/laravel-php

[31] Автоматическое обнаружение событий и слушателей: https://blog.laravel.com/automatic-event-listener-discovery

[32] Laravel Snippet #10: https://blog.laravel.com/laravel-snippet-10

[33] Полезные репозитории с Eloquent?: https://habr.com/ru/post/445452/

[34] Preparing Yii for the long run: https://www.yiiframework.com/news/204/preparing-yii-for-the-long-run

[35] Yii development notes #27: https://www.patreon.com/posts/25718355

[36] WyriHaximusNet/docker-php: https://github.com/WyriHaximusNet/docker-php

[37] phpinnacle/ridge: https://github.com/phpinnacle/ridge

[38] Пятиминутка PHP №49: https://5minphp.ru/episode49/

[39] Как на самом деле работают переменные окружения в PHP: https://mattallan.me/posts/how-php-environment-variables-actually-work/

[40] инцидента с Laravel: https://github.com/laravel/framework/issues/27949

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

[42] Деструктурирование массивов в PHP: https://stitcher.io/blog/array-destructuring-with-list-in-php

[43] Буфер вывода в PHP: https://medium.com/spacecode/output-buffering-in-php-357c5ae197cf

[44] тут: https://habr.com/ru/company/mailru/blog/248573/

[45] тут: http://anton.shevchuk.name/php/php-for-beginners-output-buffer/

[46] Тесты на Codeception для PHP-бэкендов: https://amylabs.ru/post/testy-na-codeception-dlya-php-bekendov-pavel-stashevskiy-qa-engineer-lamoda.html

[47] Яндекс.Алиса и бот Telegram на PHP с единым функционалом: https://habr.com/ru/post/446174/

[48] Своя временная почта: телеграм бот: https://habr.com/ru/post/445988/

[49] Современный PHP — прекрасен и продуктивен: https://habr.com/ru/post/445380/

[50] ircmaxell/php-c-parser: https://github.com/ircmaxell/php-c-parser

[51] memory-agape/php-java: https://github.com/memory-agape/php-java

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

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

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

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

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

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

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

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