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

PHP-Дайджест № 191 (19 октября – 2 ноября 2020)

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 1

Фото: Валерий Горбачев (PHP Krasnodar [1])

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8.0 RC 3 и видеообзоры новых возможностей, Composer 2, завершение разработки Faker (теперь в новой организации), два новых RFC для PHP 8.1, порция полезных инструментов, статьи, видео с прошедших митапов.

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

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 2 Новости и релизы

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 6 PHP Internals

  • [RFC] Short Functions [31] — В этом RFC предлагается добавить синтаксис стрелочных функций для однострочных именованных функций и методов.
    class Person
    {
        public function __construct(
            private string $firstName,
        ) {}
        public function getFirstName(): string => $this->firstName;
    }"
    
  • [RFC] Explicit octal integer literal notation [32] — В PHP шестнадцатеричные числа записываются с префиксом 0x, а двоичные с 0b. Восьмеричные же сейчас выбиваются из ряда и записываются с префиксом 0. Кроме неконсистентности, это может привести к проблемам при нестрогом сравнении с числовой строкой. Например, 016 в десятичном представлении равно 14 и в результате "016" == 016; // false.

    Предлагается для восьмеричных чисел разрешить нотацию с префиксом 0o, которая является стандартом и используется во многих других языках.

    0o16 === 14; // true
    016 === 0o16; // true
    "016" == 0o16; // false
    
  • Literal types PoC [33] — Концепт литерального типа для PHP как в TypeScript [34].
    function foo(): "foo"|"bar" {
        return "foo";
    }
    

    Литеральный тип вряд ли будет реализован в PHP, но вот есть черновик RFC с предложением алгебраического типа данных [35], т. е. продвинутых перечислений.

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 7 Инструменты

  • Infection PHP 0.20 [36] — В свежем обновлении фреймворка для мутационного тестирования добавлено 8 новых мутаторов и возможность автоматически добавлять комментарии прямо в PR на GitHub.
  • JustSteveKing/php-sdk [37] — Скелет для разработки PHP SDK для сервисов и API.
  • Hi-Folks/rando-php [38] — Хелпер для генерирования псевдослучайных данных с различными фильтрами: $randomChars = Randomize::sequence()->chars()->count(10)->noDuplicates()->generate();
  • voku/PHPDoctor [39] — Проверяет файлы и директории и находит места, где не хватает деклараций типов.
  • Psalm 4 [40] — Обновление популярного статического анализатора.
  • phpDocumentor v3.0.0 [41] — Мажорное обновление инструмента для генерирования документации на основе PHPDoc.

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 8 Symfony

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 9 Laravel

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 13 Yii

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 14 Материалы для обучения

PHP-Дайджест № 191 (19 октября – 2 ноября 2020) - 17 Аудио/Видео


Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку [81].

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

Прислать ссылку [83]
Поиск ссылок по всем дайджестам [84]
Предыдущий выпуск: PHP-Дайджест № 190 [85]

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

Источник [86]


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

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

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

[1] PHP Krasnodar: https://t.me/phpkrd

[2] PHP 8.0 RC 3: https://www.php.net/archive/2020.php#2020-10-29-2

[3] Серия видеороликов по всем новым фичам от Spatie: https://spatie.be/videos/front-line-php

[4] на YouTube: https://www.youtube.com/playlist?list=PLjzBMxW2XGTwEwWumYBaFHy1z4W32TcjU

[5] Отличный обзор изменений с интерактивными демо: https://pociot.dev/32-php-8-try-out-all-new-features

[6] PHP 8 — пробуем новые возможности: https://habr.com/ru/company/mailru/blog/525614/

[7] Видеокурс по новым фичам: https://beyondco.de/course/whats-new-in-php-8/new-features/union-types

[8] Weak maps: https://platform.sh/blog/2020/php-80-feature-focus-weak-maps/

[9] FFI: https://platform.sh/blog/2020/php-fun-with-ffi-just-enough-c/

[10] JIT: https://platform.sh/blog/2020/php-80-feature-focus-just-in-time-compilation/

[11] Самые частые ошибки совместимости с PHP 8.0 и как их исправить: https://www.exakat.io/en/common-php-8-0-compilation-error-messages/

[12] В PhpStorm 2020.3 будут доступны кастомные атрибуты для PHP 8: https://blog.jetbrains.com/phpstorm/2020/10/phpstorm-2020-3-eap-4/

[13] PHP 7.4.12: https://www.php.net/ChangeLog-7.php#7.4.12

[14] PHP 7.3.24: https://www.php.net/ChangeLog-7.php#7.3.24

[15] Composer 2: https://blog.packagist.com/composer-2-0-is-now-available/

[16] много другого: https://github.com/composer/composer/releases/tag/2.0.0

[17] на php.watch: https://php.watch/articles/composer-2

[18] в переводе на Хабре: https://habr.com/ru/post/524916/

[19] Закат PHP Faker: https://marmelab.com/blog/2020/10/21/sunsetting-faker.html

[20] PR по поддержке PHP 8: https://github.com/fzaninotto/Faker/pull/2063

[21] fzaninotto/Faker: https://github.com/fzaninotto/Faker

[22] fakerphp/Faker: https://github.com/fakerphp/Faker

[23] единственную худшую стратегическую ошибку: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/

[24] François: https://twitter.com/francoisz

[25] PHP Russia 2020 -> PHP Russia 2021: https://phprussia.ru/moscow/2020

[26] перенесли: https://t.me/PHPRussiaConfChannel/153

[27] phpcommunity.ru: https://phpcommunity.ru/

[28] Калининград, 4 ноября: https://gdg-kaliningrad.timepad.ru/event/1460215/

[29] Краснодар, 7 ноября: https://phpcommunity.ru/meetup-krasnodar

[30] Нижний Новгород, 14 ноября: https://phpcommunity.ru/meetup-nn-3

[31] [RFC] Short Functions: https://wiki.php.net/rfc/short-functions

[32] [RFC] Explicit octal integer literal notation: https://wiki.php.net/rfc/explicit_octal_notation

[33] Literal types PoC: https://github.com/BogdanUngureanu/php-src/commit/37413543fafb300468d83ed8fcc72dc859c577cb

[34] в TypeScript: https://www.typescriptlang.org/docs/handbook/literal-types.html

[35] RFC с предложением алгебраического типа данных: https://wiki.php.net/rfc/enumerations_and_adts

[36] Infection PHP 0.20: https://infection.github.io/2020/11/01/whats-new-in-0.20.0/

[37] JustSteveKing/php-sdk: https://github.com/JustSteveKing/php-sdk

[38] Hi-Folks/rando-php: https://github.com/Hi-Folks/rando-php

[39] voku/PHPDoctor: https://github.com/voku/PHPDoctor#-phpdoctor

[40] Psalm 4: https://psalm.dev/articles/psalm-4

[41] phpDocumentor v3.0.0: https://github.com/phpDocumentor/phpDocumentor/releases/tag/v3.0.0

[42] A/B тесты на Symfony: https://dev.to/scullwm/ab-tests-with-symfony-5-made-easy-1km4

[43] travaux-com/VariantRetriever: https://github.com/travaux-com/VariantRetriever

[44] Неделя Symfony #722 (26 октября — 1 ноября 2020): https://symfony.com/blog/a-week-of-symfony-722-26-october-1-november-2020?utm_medium=feed

[45] Удаленное выполнение кода (RCE) на Symfony сайтах: https://www.ambionics.io/blog/symfony-secret-fragment

[46] jessarcher/laravel-castable-data-transfer-object: https://github.com/jessarcher/laravel-castable-data-transfer-object

[47] в посте: https://jessarcher.com/blog/casting-json-columns-to-value-objects/

[48] Collector: https://plugins.jetbrains.com/plugin/15246-collector

[49] spatie/laravel-route-attributes: https://github.com/spatie/laravel-route-attributes

[50] Нестандартный Laravel: https://ryangjchandler.co.uk/articles/unconventional-laravel-auto-validating-models

[51] Laravel–Дайджест (26 октября – 1 ноября 2020): https://habr.com/ru/post/525990/

[52] Laravel Worldwide Meetup #4:: https://freek.dev/1817-laravel-worldwide-meetup-4-github-actions-unconventional-autoloaders

[53] «GitHub Actions для Laravel разработчиков»: https://www.youtube.com/watch?v=1kPu2eQjkGk&t=292s

[54] «Нетрадиционные автозагрузчики»: https://youtu.be/1kPu2eQjkGk?t=2258

[55] Laravel Fireside — 21.10.2020: https://www.youtube.com/watch?v=bfRUfy0Ywdo

[56] Обновился PhpStorm плагин Yii2 Support: https://plugins.jetbrains.com/plugin/9388-yii2-support

[57] yiisoft/security 1.0: https://github.com/yiisoft/security

[58] Делаем ООП правильно: https://front-line-php.com/object-oriented

[59] о важности использования пула HTTP-соединений в хайлоаде на PHP: https://techblog.wikimedia.org/2020/10/26/impact-of-using-http-connection-pooling-for-php-applications-at-scale/

[60] envoyproxy/envoy: https://github.com/envoyproxy/envoy

[61] Сравнение инструментов подсчета покрытия кода: https://php.watch/articles/php-code-coverage-comparison

[62] Как убрать лишние детали из тестов: https://www.kai-sassnowski.com/post/reducing-unnecessary-details-in-tests/

[63] О разнице между Value Object и Data Transfer Object.: https://github.com/spatie/data-transfer-object/issues/17#issuecomment-434200968

[64] Эволюция PHP — от 5.6 до 8.0 (Часть 1): https://habr.com/ru/company/otus/blog/524270/

[65] (Часть 2): https://habr.com/ru/company/otus/blog/524990/

[66] Откуда берется заголовок Content-Type: nginx + php-fpm: https://habr.com/ru/post/524906/

[67] SDCast #124: https://sdcast.ksdaemon.ru/2020/10/sdcast-124/

[68] Нюансы WeakReference & WeakMap на конкретном примере / Валентин Удальцов: https://www.youtube.com/watch?v=r1HDMu7nJh0

[69] задачи: https://t.me/phpyh/182

[70] Пых: https://t.me/phpyh

[71] Escaping from OOP boundaries: https://youtu.be/9yeBgUyJBeQ?t=416

[72] lisachenko/z-engine: https://github.com/lisachenko/z-engine

[73] Большие проекты, архитектура и фреймворки: https://youtu.be/qE87-jf3kRs?t=21939

[74] Очень странные дела на PHP (Кирилл Несмеянов, PHP Russia): https://www.youtube.com/watch?v=1ZO1wR4rCCQ

[75] Безопасность: от принципов до особенностей PHP (Александр Макаров, Yii): https://www.youtube.com/watch?v=KUaUlAqAf_U

[76] Перенос проекта с PHP4 на PHP7 (Максим Шамаев, Skyeng): https://www.youtube.com/watch?v=MX7Wbt9rCsg

[77] Переезд с PHP на Go (Илья Фроликов, Туту.ру): https://www.youtube.com/watch?v=dYVrXYYkwy8

[78] От Doctrine ORM к CQRS за 20 минут (Дмитрий Симушев, Райффайзенбанк): https://www.youtube.com/watch?v=LmiSpznZWTU

[79] Митап ульяновского PHP-сообщества: https://www.youtube.com/watch?v=fASGg3utLko

[80] Доклады от самарского PHP-сообщества: https://www.youtube.com/watch?v=u1rSqjFu3pY

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

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

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

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

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

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