- PVSM.RU - https://www.pvsm.ru -
Свежая подборка со ссылками на новости и материалы. В выпуске: релизы Laravel 7 и CodeIgniter 4, атрибуты v2 и другие RFC-предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.
Приятного чтения!
<<...>>
. Готов черновик реализации [8]. Ранее уже были предложения о простых аннотациях [9] и атрибутах [10], последнее предложение как раз не прошло голосование.
use DoctrineORMMapping as ORM;
<<ORMEntity(["repositoryClass" => UserRepository::class])>>
<<ORMTable("users")>>
class User
{
<<ORMId, ORMColumn, ORMGeneratedValue>>
public int $id;
<<ORMColumn(["unique" => true])>>
public string $email;
<<ORMManyToOne()>>
public ?Address $address;
}
<?php
$a = [];
$a = ++$a; // [] and no errors
$a = $a + 1; // Fatal error
В PHP 8 предлагается исправить эти и другие несоответствия и бросать TypeError
где необходимо.
string|Stringable
там, где ожидается строка, и передавать классы с __toString()
. При этом интерфейс явно добавлять не нужно [13].@component
.Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку [71].
Вопросы и предложения пишите на почту [72] или в твиттер [73].
Больше новостей и комментариев в Telegram-канале PHP Digest [74].
Прислать ссылку [75]
Поиск ссылок по всем дайджестам [76]
← Предыдущий выпуск: PHP-Дайджест № 174 [77]
Автор: Роман Пронский
Источник [78]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/349065
Ссылки в тексте:
[1] CodeIgniter 4.0: https://github.com/codeigniter4/CodeIgniter4
[2] BeerPHP: https://t.me/beerphp_yaroslavl
[3] 2-й PHP-митап городского чата: https://t.me/php_vrn/1298
[4] 3-й PHP-митап: https://scienceman.timepad.ru/event/1263936/
[5] 2-й PHP-митап: https://php-not-dead.timepad.ru/event/1253335/
[6] skyeng/php-communities: https://github.com/skyeng/php-communities
[7] [RFC] Attributes v2: https://wiki.php.net/rfc/attributes_v2
[8] черновик реализации: https://github.com/beberlei/php-src/pull/2
[9] простых аннотациях: https://wiki.php.net/rfc/simple-annotations
[10] атрибутах: https://wiki.php.net/rfc/attributes
[11] [RFC] Increment/Decrement Fixes: https://wiki.php.net/rfc/increment_decrement_fixes
[12] [RFC] Stringable: https://wiki.php.net/rfc/stringable
[13] не нужно: https://t.me/phpdigest/125
[14] [PR] Make sorting stable: https://github.com/php/php-src/pull/5236
[15] пример: https://3v4l.org/bpvq1
[16] shivammathur/setup-php: https://github.com/shivammathur/setup-php
[17] minicli/minicli: https://github.com/minicli/minicli
[18] Серия постов: https://dev.to/erikaheidi/introducing-minicli-a-microframework-for-cli-centric-php-applications-44ik
[19] cebe/php-openapi: https://github.com/cebe/php-openapi
[20] туториалов по разработке на Symfony 5: https://symfonycasts.com/screencast/symfony
[21] Автоматическая настройка Doctrine-репозиториев как сервисов: https://www.strangebuzz.com/en/blog/auto-configuration-of-doctrine-repositories-as-services
[22] Неделя Symfony #688 (2-8 марта 2020): https://symfony.com/blog/a-week-of-symfony-688-2-8-march-2020
[23] Laravel 7: https://laravel.com/docs/7.x/releases
[24] laravel/airlock: https://github.com/laravel/airlock
[25] Туториал: https://laravel.demiart.ru/custom-casts/
[26] kitetail/zttp: https://github.com/kitetail/zttp
[27] другие изменения: https://laravel.demiart.ru/laravel-7-whats-new/
[28] на Laracasts: https://laracasts.com/series/whats-new-in-laravel-7
[29] Coder's Tape: https://www.youtube.com/playlist?list=PLpzy7FIRqpGCl26FcHazZmIUwT7zFJu7U
[30] livewire v1.0: https://github.com/livewire/livewire
[31] Видеотуториал: https://www.youtube.com/watch?v=Qljh8w5YX44
[32] nunomaduro/laravel-mojito: https://github.com/nunomaduro/laravel-mojito
[33] Демо использования: https://www.codecaptain.io/blog/web-development/testing-views-in-isolation-with-laravel-mojito/685
[34] Оптимизация циклических отношений в Laravel: https://reinink.ca/articles/optimizing-circular-relationships-in-laravel
[35] Laravel Snippet #23: https://blog.laravel.com/laravel-snippet-23-laravel-7x-forge-vapor-speaking-vs-silence
[36] Видео с Laracon Australia 2019: https://www.youtube.com/playlist?list=PLEkJYA4gJb78lIOKjZ0tJ9rWszT6uCTJH
[37] Принцип Единой Ответственности (SRP): https://habr.com/ru/post/489174/
[38] Laravel+Docker+Gitlab. С чего начать: https://habr.com/ru/post/491532/
[39] yiisoft/friendly-exception: https://github.com/yiisoft/friendly-exception
[40] Технического руководящего комитета проекта Laminas: https://getlaminas.org/blog/2020-03-05-tsc-inaugural-meeting.html
[41] протокола: https://github.com/laminas/technical-steering-committee/blob/master/meetings/minutes/2020-03-02-TSC-Minutes.md
[42] driftphp/reactphp-dbal: https://github.com/driftphp/reactphp-dbal
[43] Как устроен JIT в PHP 8: https://thephp.website/en/issue/php-8-jit/
[44] Подборка хороших практик программирования на PHP: https://beberlei.de/2020/02/25/clean_code_object_calisthenics_rules_i_try_to_follow.html
[45] Benjamin Eberlei: https://twitter.com/beberlei
[46] Как я нашёл: https://www.miguelxpn.com/coding/php/opensource/2020/03/01/how-i-found-and-fixed-a-bug-in-php-std-lib.html
[47] исправил: https://github.com/php/php-src/pull/5201
[48] баг: https://bugs.php.net/bug.php?id=79265
[49] Использование RabbitMQ вместе с MonsterMQ: https://habr.com/ru/post/488850/
[50] 2: https://habr.com/ru/post/489022/
[51] 3: https://habr.com/ru/post/489692/
[52] 4: https://habr.com/ru/post/490194/
[53] 5: https://habr.com/ru/post/490678/
[54] Маппинг данных из реляционной БД: https://habr.com/ru/post/490550/
[55] Избавляемся от рутины со своим плагином для PhpStorm: https://habr.com/ru/company/badoo/blog/490024/
[56] Как написать хороший README: https://flower.codes/writing-a-damn-good-readme-file/
[57] Андрея Ситника: https://twitter.com/andrey_sitnik
[58] как продвигать open-source проекты: https://www.youtube.com/watch?v=DU0LiH61PnQ
[59] Видео с RND PHP #2 (Ростов-на-Дону): https://youtu.be/2TBrGX1-mJY?t=1618
[60] Видео с PHP-митапа в Йошкар-Оле: https://www.youtube.com/playlist?list=PL29DYZAQWb0JKrUgONzLLhzy3EEh6s-zy
[61] Подкаст The Undercover ElePHPant #9: https://undercover-elephpant.com/episodes/talking-background-processes-and-workers-in-php-with-samuel-roze
[62] Samuel Rose: https://twitter.com/samuelroze
[63] Пять проблем надёжного запуска фоновых процессов на PHP: https://tideways.com/profiler/blog/five-challenges-for-running-reliable-php-background-processes
[64] Подкаст Voices of the ElePHPant: https://voicesoftheelephpant.com/2020/02/26/interview-with-sara-golemon-derick-rethans/
[65] PHP Internals News podcast #43: https://phpinternals.news/43
[66] трейтов: https://wiki.php.net/rfc/abstract_trait_method_validation
[67] лексера: https://wiki.php.net/rfc/token_as_object
[68] PHP Internals News podcast #42: https://phpinternals.news/42
[69] Jan Böhmer: https://github.com/jbtronics
[70] перегрузке операторов: https://wiki.php.net/rfc/userspace_operator_overloading
[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-Дайджест № 174: https://habr.com/ru/post/489662/
[78] Источник: https://habr.com/ru/post/491660/?utm_source=habrahabr&utm_medium=rss&utm_campaign=491660
Нажмите здесь для печати.