- PVSM.RU - https://www.pvsm.ru -
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 beta 3, принят новый синтаксис атрибутов в PHP 8, Zephir всё, целая пачка полезных инструментов, статьи, видео, подкасты.
Приятного чтения!
#[Attribute]
.
#[
ORMEntity,
ORMTable("user")
]
class User
{
#[ORMId, ORMColumn("integer"), ORMGeneratedValue]
private $id;
#[ORMColumn("string", ORMColumn::UNIQUE)]
#[AssertEmail(["message" => "The email '{{ value }}' is not a valid email."])]
private $email;
}
Кстати, предыдущий синтаксис с @@Attr
не поддерживал группировку атрибутов и поэтому такая возможность была убрана из PR. Но поскольку у #[ ]
есть маркер конца, то группировку он поддерживает и она была возвращена.
// Можно и так
#[ORMEntity]
#[ORMTable("user")]
// и так
#[
ORMEntity,
ORMTable("user")
]
Подробнее об атрибутах было в посте [9].
any(iterable $input, ?callable $callback = null): bool
— запустит колбек на каждом элементе и остановится, на первом, который вернет true
.all(...)
— вернет true
только, если колбек вернет true
для каждого элемента.
Пример использования:
// Было
$satisifes_predicate = false;
foreach ($item_list as $item) {
if (API::satisfiesCondition($item)) {
$satisfies_predicate = true;
break;
}
}
if (!$satisfies_predicate) {
throw new APIException("No matches found");
}
// Стало
if (!any($item_list, fn($item) => API::satisfiesCondition($item))) {
throw new APIException("No matches found");
}
composer repl
для запуска bobthecow/psysh [15].match
. Подробнее об истории match
в PHP в посте [59].Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку [62].
Вопросы и предложения пишите на почту [63] или в твиттер [64].
Больше новостей и комментариев в Telegram-канале PHP Digest [65].
Прислать ссылку [66]
Поиск ссылок по всем дайджестам [67]
← Предыдущий выпуск: PHP-Дайджест № 186 [68]
Автор: Роман Пронский
Источник [69]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/356727
Ссылки в тексте:
[1] PHP 8 beta 3: https://www.php.net/archive/2020.php#2020-09-03-3
[2] PHP 7.4.10: https://www.php.net/ChangeLog-7.php#7.4.10
[3] PHP 7.3.22: https://www.php.net/ChangeLog-7.php#7.3.22
[4] Будущее Zephir и Phalcon: https://blog.phalcon.io/post/the-future-of-phalcon
[5] план по поддержке версий PHP: https://make.wordpress.org/core/2020/08/24/proposal-dropping-support-for-old-php-versions-via-a-fixed-schedule/
[6] ответам: https://make.wordpress.org/core/2020/08/24/proposal-dropping-support-for-old-php-versions-via-a-fixed-schedule/#comment-39736
[7] официальной статистике: https://wordpress.org/about/stats/#php_versions
[8] [RFC] Shorter Attribute Syntax Change: https://wiki.php.net/rfc/shorter_attribute_syntax_change#voting
[9] в посте: https://stitcher.io/blog/attributes-in-php-8
[10] [RFC] any() and all() on iterables: https://wiki.php.net/rfc/any_all_on_iterable
[11] Pest 0.3: https://nunomaduro.com/pest-v0-3-is-out/
[12] Pest IntelliJ: https://nybroe.dev/pest-phpstorm-plugin-v0.30/
[13] Codeception/Verify 2.0: https://github.com/Codeception/Verify
[14] ramsey/composer-repl: https://github.com/ramsey/composer-repl
[15] bobthecow/psysh: https://github.com/bobthecow/psysh
[16] brick/money: https://github.com/brick/money
[17] Сравнение с moneyphp/money: https://github.com/brick/money/issues/28#issuecomment-678708771
[18] bassim/super-expressive-php: https://github.com/bassim/super-expressive-php
[19] VerbalExpressions/PHPVerbalExpressions: https://github.com/VerbalExpressions/PHPVerbalExpressions
[20] phpsci/phpsci-carray: https://github.com/phpsci/phpsci-carray
[21] github.com/phpwebclient: https://github.com/phpwebclient
[22] hamlet-framework/type: https://github.com/hamlet-framework/type
[23] Книга «Symfony 5: Быстрый старт» доступна онлайн на русском: https://symfony.com/doc/current/the-fast-track/ru/index.html
[24] Неделя Symfony #714 (31 августа — 6 сентября 2020): https://symfony.com/blog/a-week-of-symfony-714-31-august-6-september-2020
[25] laravel-orion/laravel-orion: https://github.com/laravel-orion/laravel-orion
[26] @alexzarbn: https://twitter.com/alexzarbn
[27] Statamic 3: https://github.com/statamic/statamic
[28] Типичные ошибки в безопасности в Laravel-приложениях: https://cyberpanda.la/ebooks/download/laravel-security?pdf=true
[29] Legacy и Laravel: Переписываем устаревшее приложение на современный фреймворк: https://laravel.demiart.ru/converting-legacy-to-laravel/
[30] Laravel 8 — Что нового?: https://laravel.demiart.ru/laravel-8-whats-new/
[31] Laravel–Дайджест (24 августа – 6 сентября 2020): https://habr.com/ru/post/517980/
[32] Laravel Worldwide Meetup #2: Neo Ighodaro and Michael Dyrynda: https://www.youtube.com/watch?v=4WZHRtgMAWo
[33] yiisoft/auth: https://github.com/yiisoft/auth
[34] yiisoft/strings: https://github.com/yiisoft/strings
[35] Пишем простую ORM с возможностью смены БД на лету: https://habr.com/ru/post/515068/
[36] Архитектура PHP-приложений вдохновленная «чистой архитекторой»: https://medium.com/engenharia-arquivei/a-decoupled-php-architecture-inspired-by-the-clean-architecture-788b30ab52c2
[37] Диалекты в коде: Часть 1: https://www.rosstuck.com/dialects-in-code-part-1
[38] Как работает unserialize() в PHP: https://vkili.github.io/blog/insecure%20deserialization/unserialize/
[39] Подключаем статический анализ (psalm) в проекте: https://www.jamestitcumb.com/posts/quality-get-started-with-static-analysis-now
[40] Ускоряем PHP при помощи FFI: https://dev.to/jorgecc/speeding-php-with-ffi-5gn0
[41] Настраиваем Xdebug + Docker + PhpStorm: https://jump24.co.uk/journal/turbocharged-php-development-with-xdebug-docker-and-phpstorm/
[42] Anna Filina: https://twitter.com/afilina/status/1288126813303001094
[43] pic.twitter.com/cvVUKsNQAo: https://t.co/cvVUKsNQAo
[44] July 28, 2020: https://twitter.com/afilina/status/1288126813303001094?ref_src=twsrc%5Etfw
[45] Xdebug через Windows Subsystem For Linux 2 (WSL2): https://habr.com/ru/post/516254/
[46] Модернизация старого PHP-приложения: https://habr.com/ru/company/mailru/blog/515778/
[47] Мёртвый код: найти и обезвредить: https://habr.com/ru/company/badoo/blog/515472/
[48] Перечисления в PHP: https://habr.com/ru/post/517752/
[49] Ты решил написать свой фреймворк. Стоило оно того?: https://habr.com/ru/company/skyeng/blog/516950/
[50] подкаста Между скобок с Александром Лисаченко: https://soundcloud.com/between-braces/9-aleksandr-lisachenko-aop-v-php
[51] Как Lingualeo переехал на PostgreSQL с 23 млн юзеров: https://habr.com/ru/company/lingualeo/blog/515530/
[52] Вред хранимых процедур: https://habr.com/ru/company/ruvds/blog/517302/
[53] 20_20 — год, в котором подчеркивание в числовых литералах победило: https://habr.com/ru/post/516984/
[54] Доклад Tobias Nyholm : https://www.youtube.com/watch?v=k8VdT99jY5k
[55] async-aws/aws: https://github.com/async-aws/aws
[56] ХудоБедно на тему работы в IT: https://www.youtube.com/watch?v=Eyql6XDvvSQ
[57] PHP Internals News #67: https://phpinternals.news/67
[58] Дерик Xdebug: https://twitter.com/derickr
[59] в посте: https://lwn.net/SubscriberLink/830206/2eaa67bfc56d2232/
[60] pic.twitter.com/7v3UAWM8gI: https://t.co/7v3UAWM8gI
[61] September 1, 2020: https://twitter.com/CamAsMetaphor/status/1300893022146703360?ref_src=twsrc%5Etfw
[62] личку: https://habrahabr.ru/conversations/pronskiy/
[63] почту: mailto:roman@pronskiy.com
[64] твиттер: https://twitter.com/pronskiy
[65] PHP Digest: https://t.me/phpdigest
[66] Прислать ссылку: https://bit.ly/php-digest-add-link
[67] Поиск ссылок по всем дайджестам: https://pronskiy.com/php-digest/
[68] Предыдущий выпуск: PHP-Дайджест № 186: https://habr.com/ru/post/515416/
[69] Источник: https://habr.com/ru/post/518064/?utm_source=habrahabr&utm_medium=rss&utm_campaign=518064
Нажмите здесь для печати.