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

PHP-Дайджест № 164 (27 августа – 9 сентября 2019)

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 RC1, Laravel 6, Monolog 2 и другие релизы, Union Types и прочие новости из PHP Internals, порция полезных инструментов, пачка подкастов и многое другое.

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

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 2 Новости и релизы

  • PHP 7.4.0 RC1 [1] — Стартовал цикл релиз-кандидатов ветки 7.4. Ожидается всего не менее 6 выпусков для стабилизации.
  • PHP 7.1.32 [2], PHP 7.2.22 [3], PHP 7.3.9 [4] — Релизы с исправлениями критичных ошибок безопасности, всем пользователям рекомендуется обновиться.
  • Monolog 2.0.0 [5] — После 4 лет разработки представлен Monolog 2.0. Требует PHP 7.2, используются тайпхинты где возможно и strict_types. Добавлены новые хэндлеры (SqsHandler, TelegramBotHandler) и другое. Monolog 1.x будет поддерживаться и дальше.

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 3 PHP Internals

  • [RFC] Reclassifying engine warnings [6] — Предлагается пересмотреть бросаемые нотисы и ворнинги в движке PHP и поправить классификацию там, где необходимо. Во многих случаях предлагается повысить уровень ошибки: Notice -> Warning, например, при попытке получить свойство у не-объекта, и Warning -> Error exception, например, при попытке использовать скаляр как массив. Ну и «Undefined variable» будет бросать Warning.
  • [RFC] Union Types v2 [7] — Предлагается ввести объединённые типы – это значит, что переменная может принимать один из перечисленных типов. Де-факто объединённые типы давно используются в PHPDoc, но теперь они действительно будут проверяться самим интерпретатором.
    Предлагаемый синтаксис T1|T2|... может быть использованы везде, где типы можно указывать сейчас:

    Скрытый текст

    class Number {
        private int|float $number;
    
        public function setNumber(int|float $number): void {
            $this->number = $number;
        }
    
        public function getNumber(): int|float {
            return $this->number;
        }
    }
    

    В качестве эксперимента RFC оформлен в виде пулл-реквеста [8] и любой желающий может прокомментировать или выразить реакцию в виде emoji. Финальное голосование будет проходить так же, как и раньше на wiki.php.net. Судя по сообщению Никиты [9], первый эксперимент прошёл неплохо и было получено много ценных комментариев от сообщества.

  • error_reporting=E_ALL in PHP 8 [10] — В PHP 8 по умолчанию уровень ошибок будет установлен в E_ALL вместо текущего: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED.
  • [RFC] Object Initializer [11] — Документ пока в черновике, но весьма интересный. Предлагается реализовать синтаксис быстрой для инициализации объектов:
    Скрытый текст

    class Customer
    {
      public $id;
      public $name;
    }
    
    $customer = new Customer {
      id = 123,
      name = "John Doe",
    };
    

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 4 Инструменты

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 5 Symfony

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 6 Laravel

  • Laravel 6 [26] — На конференции LaraconEU представлено мажорное обновление фреймворка. Это LTS релиз и будет получать обновления безопасности в течение 3 лет. Также теперь релиз следует Semver, а значит версия 7 выйдет уже этой зимой. Более подробно об изменениях на русском [27], и в видео на Laracasts [28].
  • facade/ignition [29] — Кроме прочего, в Laravel 6 реализована новая страница ошибок [30]. Она базируется на Whoops [31], но предоставляет больше информации и даже предлагает исправлять простые ошибки не покидая браузера.
  • beyondcode/laravel-view-xray [32] — Удобно подсветит и подпишет вьюшки на странице.
  • stefanzweifel/laravel-stats 2.0 [33] — Artisan-команда, которая выведет разнообразную статистику кода.
  • video PHP Townhall #68: Behind the Facade [34] — Taylor Otwell в гостях у Matt Trask и Ben Edmunds обсуждают, что нового в Laravel, бизнес-сторону дел, и организацию LaraconUS.

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 8 Yii

Async PHP

  • video Пишем RESTful API с помощью ReactPHP: Управляем заказами [36]
  • clue/reactphp-stdio [37] — Асинхронный инструмент для создания по-настоящему интерактивных CLI-утилит. Пост [38] в поддержку релиза.

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 10 Материалы для обучения

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 16 Аудио/Видео

PHP-Дайджест № 164 (27 августа – 9 сентября 2019) - 30 Сообщество

  • Matthew Weier O'Phinney [56], лидер Zend Framework (Laminas) и один из основателей PHP-FIG, закончил работу в Zend и ищет новое место
  • Автор Xdebug Derick Rethans рассматривает возможность сделать Xdebug 3 платным для коммерческого использования. На что Joe Walkins ответил, что экосистеме нужен бесплатный отладчик и в таком случае он будет вынужден реализовать альтернативное расширение.

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

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

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

Прислать ссылку [62]
Поиск ссылок по всем дайджестам [63]
Предыдущий выпуск: PHP-Дайджест № 163 [64]

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

Источник [65]


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

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

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

[1] PHP 7.4.0 RC1: https://www.php.net/index.php#id2019-09-05-1

[2] PHP 7.1.32: https://www.php.net/archive/2019.php#2019-08-30-1

[3] PHP 7.2.22: https://www.php.net/archive/2019.php#2019-08-29-2

[4] PHP 7.3.9: https://www.php.net/archive/2019.php#2019-08-29-1

[5] Monolog 2.0.0: https://github.com/Seldaek/monolog/releases/tag/2.0.0

[6] [RFC] Reclassifying engine warnings: https://wiki.php.net/rfc/engine_warnings

[7] [RFC] Union Types v2: https://github.com/nikic/php-rfcs/blob/union-types/rfcs/0000-union-types-v2.md

[8] пулл-реквеста: https://github.com/php/php-rfcs/pull/1

[9] сообщению Никиты: https://externals.io/message/106844#106900

[10] error_reporting=E_ALL in PHP 8: https://github.com/php/php-src/pull/4659/files

[11] [RFC] Object Initializer: https://wiki.php.net/rfc/object-initializer

[12] RubixML/RubixML: https://www.reddit.com/r/PHP/comments/czfaiz/rubix_ml_machine_learning_for_php_15_beta/

[13] классификация активности человека: https://github.com/RubixML/HAR

[14] распознавание объектов на изображениях: https://github.com/RubixML/CIFAR-10

[15] прогнозирование цен: https://github.com/RubixML/Housing

[16] tsufeki/tenkawa-php-language-server: https://github.com/tsufeki/tenkawa-php-language-server

[17] Nyholm/psr7: https://github.com/Nyholm/psr7

[18] PHPCompatibility/PHPCompatibility 9.3.0: https://github.com/PHPCompatibility/PHPCompatibility/releases/tag/9.3.0

[19] dbalabka/php-enumeration: https://github.com/dbalabka/php-enumeration

[20] nunomaduro/yorn: https://github.com/nunomaduro/yorn

[21] Идея не новая: https://mnt.io/2017/10/30/export-functions-in-php-a-la-javascript/

[22] Sylius 1.6: https://sylius.com/blog/sylius-1-6-with-refreshed-admin-and-headless-ecommerce/

[23] Abstracting API calls with Symfony serializer: https://tech.yappa.be/abstracting-api-calls-with-symfony-serializer

[24] blastcloud/hybrid: https://github.com/blastcloud/hybrid

[25] Неделя Symfony #662 (2-8 сентября 2019): https://symfony.com/blog/a-week-of-symfony-662-2-8-september-2019

[26] Laravel 6: https://laravel-news.com/laravel-6

[27] на русском: https://laravel.demiart.ru/laravel-6-whats-new/

[28] на Laracasts: https://laracasts.com/series/whats-new-in-laravel-6

[29] facade/ignition: https://github.com/facade/ignition

[30] новая страница ошибок: https://freek.dev/1441-ignition-a-new-error-page-for-laravel

[31] Whoops: https://github.com/filp/whoops

[32] beyondcode/laravel-view-xray: https://github.com/beyondcode/laravel-view-xray

[33] stefanzweifel/laravel-stats 2.0: https://github.com/stefanzweifel/laravel-stats

[34] PHP Townhall #68: Behind the Facade: https://phptownhall.com/episode-68-behind-the-facade-2019/

[35] Yii 2.0.26 и прогресс по Yii 3: https://yiiframework.ru/news/249/yii-2026-i-progress-po-yii-3

[36] Управляем заказами: https://www.youtube.com/watch?v=p42AkhhqOo8

[37] clue/reactphp-stdio: https://github.com/clue/reactphp-stdio

[38] Пост: https://clue.engineering/2019/introducing-reactphp-stdio

[39] Как использовать провайдеры данных в PHPUnit: https://blog.martinhujer.cz/how-to-use-data-providers-in-phpunit/

[40] Разгоняем Magento Rest API c помощью RoadRunner: https://habr.com/ru/post/466105/

[41] Определение кодировки текста в PHP вместо mb_detect_encoding: https://habr.com/ru/post/466113/

[42] FFI: пишем на Rust в PHP-программе: https://habr.com/ru/post/455614/

[43] Какое главное отличие Dependency Injection от Service Locator?: https://habr.com/ru/post/465395/

[44] Ищем баги в PHP коде без статических анализаторов: https://habr.com/ru/post/464893/

[45] quasilyte/phpgrep: https://github.com/quasilyte/phpgrep

[46] Александр Макаров про безопасность в вебе:: https://www.youtube.com/watch?v=R0pMnVLlX10

[47] Слайды: https://slides.rmcreative.ru/2019/security/

[48] Видеозаписи с Blackfire meetup в Datadog NYC HQ: https://www.youtube.com/playlist?list=PLsXp_S76lr5ddg4xs_BjcdlNjtVE9ulNo

[49] PHP Internals News #26: https://phpinternals.news/26

[50] Nicolas Grekas: https://twitter.com/nicolasgrekas

[51] PHP Internals News #25: https://phpinternals.news/25

[52] Девшахта-подкаст с Петром Мязиным (Пятиминутка PHP): https://medium.com/devschacht/devschacht-93-ac5e4b21e696

[53] Пятиминутка PHP #65: https://5minphp.ru/episode65/

[54] Пятиминутка PHP #66: https://5minphp.ru/episode66/

[55] Пятиминутка PHP #67: https://5minphp.ru/episode67/

[56] Matthew Weier O'Phinney: https://mwop.net/blog/2019-09-03-looking-for-a-new-adventure.html

[57] August 30, 2019: https://twitter.com/derickr/status/1167449201363623936?ref_src=twsrc%5Etfw

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

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

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

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

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

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

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

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