- PVSM.RU - https://www.pvsm.ru -
Свежая подборка со ссылками на новости и материалы. В выпуске: 4 принятых RFC предложения для PHP 8, включая атрибуты (аннотации / декораторы), порция полезных инструментов, онлайн-конференции и митапы, видео, подкасты и многое другое.
Приятного чтения!
<< >>
.
<<ExampleAttribute>>
class Foo
{
<<ExampleAttribute>>
public const FOO = 'foo';
<<ExampleAttribute>>
public $x;
<<ExampleAttribute>>
public function foo(<<ExampleAttribute>> $bar) { }
}
$object = new <<ExampleAttribute>> class () { };
<<ExampleAttribute>>
function f1() { }
$f2 = <<ExampleAttribute>> function () { };
$f3 = <<ExampleAttribute>> fn () => 1;
Также будет возможность использовать атрибуты этапа компиляции. В качестве примера Benjamin Eberlei приводит [5] атрибут <<Deprecated>>
, который добавляет вызов trigger_error
в тело декорируемой функции:
<<Deprecated>>
function test() {}
// Deprecated: Function test is deprecated in %s
<<Deprecated("use test3() instead")>>
function test2() {}
// Deprecated: Function test2 is deprecated use test3() instead in %s
class Uri {
private function __construct(
?string $scheme,
?string $user,
?string $pass,
?string $host,
?int $port,
string $path,
?string $query,
?string $fragment, // <-- !
) {
...
}
}
PDO::ERRMODE_EXCEPTION
и в случае ошибок SQL будут бросаться исключения.TypeError
, когда арифметический или побитовый оператор применяется к массиву, ресурсу или объекту.match
склоняется в сторону отклонения в текущем виде, потому что многим не нравится возможность использовать блоки:
match ($x) {
0 => {
foo();
bar();
baz();
},
}
Но, поскольку до feature-freeze в PHP 8 еще три месяца, то есть шансы обновить RFC и выставить его на повторное голосование.
expect*()
для PHPUnit, чтобы сделать тесты чище.RuntimeInterface
.Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку [71].
Вопросы и предложения пишите на почту [72] или в твиттер [73].
Больше новостей и комментариев в Telegram-канале PHP Digest [74].
Прислать ссылку [75]
Поиск ссылок по всем дайджестам [76]
← Предыдущий выпуск: PHP-Дайджест № 178 [77]
Автор: Роман Пронский
Источник [78]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/352711
Ссылки в тексте:
[1] PHP Russia Online: https://phprussia.ru/moscow/2020/
[2] PHP fwdays'20: https://fwdays.com/en/event/php-fwdays-2020
[3] Fwdays PHP online meetup: https://fwdays.com/en/event/php-online-meetup
[4] [RFC] Attributes v2: https://wiki.php.net/rfc/attributes_v2
[5] приводит: https://github.com/beberlei/php-src/pull/11
[6] [RFC] Allow trailing comma in parameter list: https://wiki.php.net/rfc/trailing_comma_in_parameter_list
[7] [RFC] Change Default PDO Error Mode: https://wiki.php.net/rfc/pdo_default_errmode
[8] [RFC] Stricter type checks for arithmetic/bitwise operators: https://wiki.php.net/rfc/arithmetic_operator_type_checks
[9] [RFC] Type casting in array destructuring expressions: https://wiki.php.net/rfc/typecast_array_desctructuring
[10] [RFC] Always available JSON extension: https://wiki.php.net/rfc/always_enable_json
[11] [RFC] Match expression: https://wiki.php.net/rfc/match_expression
[12] Deji69/encase-matching: https://github.com/Deji69/encase-matching
[13] RFC: https://habr.com/ru/post/500314/#match_rfc
[14] brick/math: https://github.com/brick/math
[15] villfa/composer-substitution-plugin: https://github.com/villfa/composer-substitution-plugin
[16] async-aws/aws: https://github.com/async-aws/aws
[17] sensiolabs-de/deptrac 0.7: https://github.com/sensiolabs-de/deptrac/releases/tag/0.7.0
[18] rybakit/phpunit-extras: https://github.com/rybakit/phpunit-extras
[19] LongRunning/LongRunning: https://github.com/LongRunning/LongRunning
[20] Детальный обзор изменений компонента Security: https://wouterj.nl/2020/04/authenticators-new-symfony-security
[21] Предложение добавить новый компонент symfony/runtime: https://github.com/symfony/symfony/pull/36652
[22] Часть 1.: https://habr.com/ru/post/498134/
[23] Часть 2.: https://habr.com/ru/post/498536/
[24] Часть 3.: https://habr.com/ru/post/498610/
[25] Часть 4.: https://habr.com/ru/post/499074/
[26] Часть 5.: https://habr.com/ru/post/499076/
[27] Неделя Symfony #696 (27 апреля — 3 мая 2020): https://symfony.com/blog/a-week-of-symfony-696-27-april-3-may-2020
[28] spatie/laravel-dashboard: https://github.com/spatie/laravel-dashboard
[29] Livewire: https://laravel-livewire.com/
[30] Вводный туториал: https://freek.dev/1645-building-a-realtime-dashboard-powered-by-laravel-livewire-and-tailwind-2020-edition
[31] видеообзор: https://vimeo.com/412354485
[32] О реализации мультисайта (multitenant) на Laravel: https://www.youtube.com/watch?v=592EgykFOz4
[33] Вводный туториал по валидаторам ресурсов: https://laracasts.com/series/guest-spotlight/episodes/11
[34] Видеозаписи с зимнего Laracon Online 2020: https://vimeo.com/showcase/laracononline
[35] Динамические отношения с использованием подзапросов: https://laravel.demiart.ru/dynamic-relationships-using-subqueries/
[36] Часть 3. Чтение/запись атрибутов, собственные модели: https://habr.com/ru/post/499112/
[37] Создание собственного пакета для Laravel Nova: OptimalImage: https://habr.com/ru/post/498548/
[38] SOA на Laravel и JSON-RPC 2.0: https://habr.com/ru/post/499626/
[39] Архитектура сложных веб-приложений. С примерами на Laravel.: https://github.com/adelf/acwa_book_ru
[40] Новости Yii 2020, выпуск 4: https://yiiframework.ru/news/260/novosti-yii-2020-vypusk-4
[41] yiisoft/injector: https://github.com/yiisoft/injector
[42] bizley/yii2-migration: https://github.com/bizley/yii2-migration
[43] Подробнейший туториал по Yii2 с нуля: https://www.youtube.com/watch?v=whuIf33v2Ug
[44] Сравнение асинхронных HTTP-клиентов: https://medium.com/@DonnaInsolita/%D0%B2%D0%B4%D0%BE%D1%85%D0%BD%D0%BE%D0%B2%D0%B8%D0%B2%D1%88%D0%B8%D1%81%D1%8C-%D0%B7%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B2%D1%8C%D1%8E-%D0%BD%D0%B0-%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%B5-moreview-c-%D1%81%D0%B5%D1%80%D0%B3%D0%B5%D0%B5%D0%BC-%D0%B6%D1%83%D0%BA%D0%BE%D0%BC-%D0%B8-%D1%86%D0%B8%D0%BA%D0%BB%D0%BE%D0%BC-%D1%81%D1%82%D0%B0%D1%82%D0%B5%D0%B9-fast-web-f9715b21517f
[45] результаты: https://github.com/Insolita/php-async-benchmarks
[46] Внутренности ReactPHP: Таймеры цикла событий: https://sergeyzhuk.me/2020/05/01/event-loop-inside-timer/
[47] Composer 2 Development Update: https://blog.packagist.com/composer-2-development-update/
[48] попробовать: https://t.me/phpdigest/137
[49] информация по обновлениям экосистемы: https://github.com/composer/composer/issues/8726
[50] О времени высокой точности или как использовать доли секунды в MySQL и PHP: https://badootech.badoo.com/high-precision-time-how-to-use-fractional-seconds-in-mysql-and-php-fd9b89afe9ad
[51] Как правильно шарить правила для PHP-CS-Fixer в команде: https://laravel-news.com/sharing-php-cs-fixer-rules-across-projects-and-teams
[52] Статические конструкторы в PHP: https://liamhammett.com/static-constructors-in-php-y0zPVbQl
[53] Сочетание ивент-сорсинга и традиционного подхода в одном приложении: https://stitcher.io/blog/combining-event-sourcing-and-stateful-systems
[54] Подборка реальных схем баз данных из опенсорсных приложений: https://drawsql.app/templates/tags/php
[55] Автономизация Unit-тестов в PHPUnit: https://habr.com/ru/post/499432/
[56] Как раскатывать опасный рефакторинг на прод с миллионом пользователей?: https://habr.com/ru/company/manychat/blog/499034/
[57] PSR Стандарты: https://habr.com/ru/post/458484/
[58] PHP Internals News #51: https://phpinternals.news/51
[59] Larry Garfield: https://twitter.com/crell
[60] блог поста: https://hive.blog/php/@crell/improving-php-s-object-ergonomics
[61] PHP Town Hall Episode 74: https://phptownhall.com/episode-74-composer-self-update/
[62] Jordi Boggiano: https://twitter.com/seldaek
[63] Nils Adermann: https://twitter.com/naderman
[64] Как использовать Git Stash в PhpStorm: https://www.youtube.com/watch?v=h0SxgcCLhn8
[65] Подкаст «Между скобок» № 5: https://soundcloud.com/between-braces/5-aleksey-korneev-kak-organizovat-svoyo-regionalnoe-php-soobshchestvo
[66] 6: https://soundcloud.com/between-braces/6-aleksey-korneev-kak-provesti-onlayn-metan
[67] MoreView #5: https://www.youtube.com/watch?v=rD4a6ieeSH8
[68] MoreView #6: https://www.youtube.com/watch?v=c__neN62a-E
[69] Запись онлайн PHP-митапа от PHPofBy и Skyeng: https://www.youtube.com/watch?v=se3F83O0ZiY
[70] Пятиминутка PHP № 77: https://5minphp.ru/episode77/
[71] личку: https://habrahabr.ru/conversations/pronskiy/
[72] почту: mailto:roman@pronskiy.com
[73] твиттер: https://twitter.com/pronskiy
[74] PHP Digest: https://t.me/phpdigest
[75] Прислать ссылку: https://bit.ly/php-digest-add-link
[76] Поиск ссылок по всем дайджестам: https://pronskiy.com/php-digest/
[77] Предыдущий выпуск: PHP-Дайджест № 178: https://habr.com/ru/post/498246/
[78] Источник: https://habr.com/ru/post/500314/?utm_source=habrahabr&utm_medium=rss&utm_campaign=500314
Нажмите здесь для печати.