- PVSM.RU - https://www.pvsm.ru -
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8.0 RC 1 и переименование параметров внутренних функций, PhpStorm 2020.3 EAP, многострочные короткие лямбды, атрибуты для групп свойств и другие новости PHP Internals, порция полезных инструментов, статьи, стримы, подкасты.
Приятного чтения!
Усилия core-команды сосредоточены на пересмотре имен аргументов во всех модулях. Пример переименований в PDO [2]. За ходом можно наблюдать здесь [3].
Какой-то ютубер опубликовал инструкцию и показал, как делать примитивные пул-реквесты с изменениями в readme. Посыпался шквал бессмысленных PR. В итоге DigitalOcean теперь [10] учитывают пул-реквесты только в те репозитории, у которых авторы явно указан топик ‘hacktoberfest’
.
Если вы хотите поучаствовать в опенсорсе и получить футболку, то вот инструкция как сделать хороший пул-реквест [11] и список и issues с тегом #hacktoberfest [12] в PHP-проектах.
class FooBar {
#[NonNegative]
public int $x, $y, $z;
}
strict_types=1
..pyc / .pyo
.
Теоретически, в этом случае можно было бы распространять предварительно скомпилированный PHP-код без исходников. Типа как .phar
, но уже интерпретированный.
Но в обсуждении [16] указали на проблемы такого подхода. Формат опкода в PHP нестабилен и несовместим от версии к версии. Причем даже в рамках патч-релизов, то есть код скомпилированный на PHP 7.4.22 может просто свалиться с segfault на PHP 7.4.23. А сделать его стабильным — маловероятно.
$guests = array_filter($users, fn ($user) => {
$guest = $repository->findByUserId($user->id);
return $guest !== null && in_array($guest->id, $guestsIds);
});
Из явных преимуществ по сравнению с обычными лямбдами можно отметить автоматический захват скоупа, то есть не надо добавлять use
.
Также остается открытым вопрос синтаксиса, а именно стоит ли добавлять стрелку =>
:
fn() => {}
или
fn() {}
#[Route('/path', name: 'action')]
для роутов, #[Required]
для указания требуемых зависимостей.@
.Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку [57].
Вопросы и предложения пишите на почту [58] или в твиттер [59].
Больше новостей и комментариев в Telegram-канале PHP Digest [60].
Прислать ссылку [61]
Поиск ссылок по всем дайджестам [62]
← Предыдущий выпуск: PHP-Дайджест № 188 [63]
Автор: Роман Пронский
Источник [64]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/357588
Ссылки в тексте:
[1] PHP 8.0.0 RC 1: https://www.php.net/archive/2020.php#2020-10-01-4
[2] в PDO: https://github.com/php/php-src/pull/6220/files
[3] здесь: https://github.com/php/php-tasks/issues/23
[4] PhpStorm 2020.3 EAP: https://blog.jetbrains.com/phpstorm/2020/10/phpstorm-2020-3-early-access-program-is-now-open/
[5] PHP 7.2.34: https://www.php.net/ChangeLog-7.php#7.2.34
[6] PHP 7.3.23: https://www.php.net/ChangeLog-7.php#7.3.23
[7] PHP 7.4.11: https://www.php.net/ChangeLog-7.php#7.4.11
[8] phpcommunity.ru: https://phpcommunity.ru/
[9] Hacktoberfest: https://hacktoberfest.digitalocean.com/
[10] теперь: https://hacktoberfest.digitalocean.com/hacktoberfest-update
[11] как сделать хороший пул-реквест: https://stitcher.io/blog/what-a-good-pr-looks-like
[12] #hacktoberfest: https://github.com/search?l=&p=5&q=label%3Ahacktoberfest+language%3APHP+state%3Aopen&ref=advsearch&type=Issues
[13] [PR] Attributes on property groups: https://github.com/php/php-src/pull/6186
[14] [PR] Attributes and strict types: https://externals.io/message/111915
[15] [PR] OPCache: Direct execution opcode file without php source code file: https://github.com/php/php-src/pull/6146
[16] обсуждении: https://externals.io/message/111965
[17] [PR] Multiline arrow functions: https://github.com/php/php-src/pull/6246
[18] thephpleague/event 3.0.0: https://github.com/thephpleague/event
[19] terrylinooo/simple-cache: https://github.com/terrylinooo/simple-cache
[20] Code With Me (EAP): https://blog.jetbrains.com/blog/2020/09/28/code-with-me-eap/
[21] Bolt 4.0: https://github.com/bolt/core
[22] В Symfony 5.2 будут атрибуты PHP 8: https://symfony.com/blog/new-in-symfony-5-2-php-8-attributes?utm_medium=feed
[23] Динамическое изменение уровня логирования в приложениях Symfony.: https://matthiasnoback.nl/2020/09/symfony-changing-the-log-level/
[24] Неделя Symfony #718 (28 сентября — 4 октября 2020): https://symfony.com/blog/a-week-of-symfony-718-28-september-4-october-2020
[25] spatie/laravel-typescript-transformer: https://github.com/spatie/laravel-typescript-transformer
[26] в посте: https://rubenvanassche.com/typing-your-frontend-from-the-backend/
[27] Система управления иерархическими древовидными комментариями для Laravel: https://habr.com/ru/post/520124/
[28] drandin/closure-table-comments: https://github.com/drandin/closure-table-comments
[29] Сделайте свое приложение масштабируемым, оптимизировав производительность ORM: https://habr.com/ru/company/otus/blog/521488/
[30] Новинки Laravel 8: https://habr.com/ru/company/otus/blog/520556/
[31] Laravel Jetstream — новый скаффолдинг для фреймворка: https://habr.com/ru/post/520596/
[32] Laravel–Дайджест (28 сентября – 4 октября 2020): https://habr.com/ru/post/521978/
[33] Обновленные гайдлайны по PHP и Laravel от Spatie: https://spatie.be/guidelines/laravel-php
[34] Laravel Worldwide Meetup #3: Yaz Jallad и Адель Фаизрахманов: https://www.youtube.com/watch?v=h44R_ru8D3o
[35] PHP Russia: https://phprussia.ru/moscow/2020/
[36] W3C: https://www.w3.org/
[37] CraftCMS: https://github.com/craftcms/cms
[38] отличного документа: https://w3c.studio24.net/docs/cms-strategy-and-requirements/
[39] micc83/mailamie: https://github.com/micc83/mailamie
[40] Какая же цветовая схема IDE лучше, светлая или темная?: https://stitcher.io/blog/why-light-themes-are-better-according-to-science
[41] Анализ использований оператора подавления ошибок: https://www.exakat.io/en/i-scream-you-scream-we-all-scream-for/
[42] Как статические методы убивают тебя хуже, чем коронавирус: https://tomasvotruba.com/blog/2020/08/31/how-static-methods-kills-you-like-corona/
[43] .gitattributes для PHP-проектов: https://php.watch/articles/composer-gitattributes
[44] Почему не PHP?: https://mattbrown.dev/articles/why-not-php
[45] «Почему не Rust»: https://matklad.github.io/2020/09/20/why-not-rust.html
[46] Валидация в PHP. Красота или лапша?: https://habr.com/ru/post/521292/
[47] Собеседование php-developer в 2020: https://habr.com/ru/post/520472/
[48] Профилирование PHP-приложений с помощью Xdebug: https://www.youtube.com/watch?v=mNc_tcomrVs
[49] Туториал по работе: https://www.youtube.com/watch?v=_Uk95vG3ezQ
[50] rectorphp/rector: https://github.com/rectorphp/rector
[51] Подкаст Между скобок № 11: https://soundcloud.com/between-braces/11-valentin-udaltsov-staticheskiy-analiz
[52] Пых: https://t.me/phpyh
[53] Рефакторинг в стиле ниндзя и другие приемчики: https://www.youtube.com/watch?v=ucO7229o8Ew
[54] Компиляция и тест-драйв PHP 8: https://www.youtube.com/watch?v=tN4qs_FPkWQ
[55] pic.twitter.com/Sx3V57jBje: https://t.co/Sx3V57jBje
[56] September 22, 2020: https://twitter.com/levelsio/status/1308196984138981376?ref_src=twsrc%5Etfw
[57] личку: https://habrahabr.ru/conversations/pronskiy/
[58] почту: mailto:roman@pronskiy.com
[59] твиттер: https://twitter.com/pronskiy
[60] PHP Digest: https://t.me/phpdigest
[61] Прислать ссылку: https://bit.ly/php-digest-add-link
[62] Поиск ссылок по всем дайджестам: https://pronskiy.com/php-digest/
[63] Предыдущий выпуск: PHP-Дайджест № 188: https://habr.com/ru/post/519960/
[64] Источник: https://habr.com/ru/post/522042/?utm_source=habrahabr&utm_medium=rss&utm_campaign=522042
Нажмите здесь для печати.