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

Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 принятых, и концепт из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!
== и сделать нестрогие сравнения менее подверженными ошибкам. В частности, сравнение чисел предлагается использовать, только если сравниваемая строка на самом деле является числовой. В противном случае число преобразуется в строку, и выполняется сравнение строк.

Данное предложение влечет за собой изменение поведения операторов сравнения <=>, ==, !=, >, >=, <, и <=, конструкции switch, функций типа in_array(), sort() и других.
В ответ поступили идеи разной степени радикальности: от введения специального флага declare('strict_comparison=1');, который бы превращал все == в ===, до предложения отменить == вообще [8].
Ну а пока, в 7.4, вероятно, будет бросаться Warning [9], если результат сравнения отличается от предполагаемого в PHP 8.
"123 " == " 123" и все прочие операции работали, как и для строк с начальными пробелами.locked для классов. Такие классы будут закрыты для динамического использования свойств, то есть нельзя обращаться к необъявленным свойствам:
locked class TestClass {
public $definedProp;
}
$t = new testClass();
$t->definedProp = "OK";
echo $t->definedProp;
unset($t->definedProp);
echo $t->nonExistentProp; // Error
$t->nonExistentProp = "Not OK"; // Error
unset($t->definedProp); // Error
PHP Internals News: Episode 1 [14] — Новый подкаст от автора Xdebug Derick Rethans. В первом выпуске разговор с Никитой Поповым.__toString.$a = [1, 2, 3];
$mul = 3;
$c = [ for $a as $v yield $mul * $v use ($mul) ];
Хабрапост в поддержку [30].
докладе Тейлора [40] на Laracon Online.
Подкаст Тейлора Laravel Snippet #7 [41], #8 [42]
REST API на Laravel в 100 строк кода [44]
Шаринг сессий между Node.js и PHP [65]
FunPHP: Паблик морозов на собеседовании [66]
PHP: изменение стуктуры БД в командной разработке [67]
Автоматизация конвертирования word файлов в другие форматы [68]Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку [69].
Вопросы и предложения пишите на почту [70] или в твиттер [71].
Больше новостей и комментариев в Telegram-канале PHP Digest [72].
Прислать ссылку [73]
Поиск ссылок по всем дайджестам [74]
← Предыдущий выпуск: PHP-Дайджест № 150 [75]
Автор: Роман Пронский
Источник [76]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/311132
Ссылки в тексте:
[1] PHP 7.3.3: http://php.net/ChangeLog-7.php#7.3.3
[2] PHP 7.2.16: http://php.net/ChangeLog-7.php#7.2.16
[3] PHP 7.1.27: http://php.net/ChangeLog-7.php#7.1.27
[4] Xdebug 2.7.0: https://xdebug.org/#2019_03_06
[5] Drupal Camp Belarus 2019: https://drupalcamp.by/
[6] chilic: https://habr.com/ru/users/chilic/
[7] [RFC] Saner string to number comparisons: https://wiki.php.net/rfc/string_to_number_comparison
[8] отменить == вообще: https://github.com/Majkl578/php-src/commit/578cc9e273ab8ef50c1392a524292c19e23d21e7
[9] в 7.4, вероятно, будет бросаться Warning: https://github.com/php/php-src/pull/3917
[10] [RFC] Permit trailing whitespace in numeric strings: https://wiki.php.net/rfc/trailing_whitespace_numerics
[11] [RFC] Consistent type errors for internal functions: https://wiki.php.net/rfc/consistent_type_errors
[12] [RFC] Weak References: https://wiki.php.net/rfc/weakrefs
[13] [RFC] Locked Classes: https://wiki.php.net/rfc/locked-classes
[14] PHP Internals News: Episode 1: https://derickrethans.nl/phpinternalsnews-01.html
[15] Allow throwing from __toString(): http://news.php.net/php.internals/104535
[16] PR: https://github.com/php/php-src/pull/3887
[17] одной из старых проблем PHP: http://phpsadness.com/sad/14
[18] List comprehension: https://github.com/php/php-src/compare/master...sgolemon:list.comp
[19] spatie/image-optimizer: https://github.com/spatie/image-optimizer
[20] swagger-mock/swagger-mock: https://github.com/swagger-mock/swagger-mock
[21] strider2038: https://habr.com/ru/users/strider2038/
[22] johnkary/phpunit-speedtrap: https://github.com/johnkary/phpunit-speedtrap
[23] BrainMaestro/composer-git-hooks: https://github.com/BrainMaestro/composer-git-hooks
[24] blastcloud/guzzler: https://github.com/blastcloud/guzzler
[25] ptlis/php-serialized-data-editor: https://github.com/ptlis/php-serialized-data-editor
[26] bakame-php/csv-doctrine-collections-bridge: https://github.com/bakame-php/csv-doctrine-collections-bridge
[27] посте: https://nyamsprod.com/blog/2018/using-doctrine-collections-to-improve-csv-filtering/
[28] VKCOM/noverify: https://github.com/VKCOM/noverify
[29] z7zmey/php-parser: https://github.com/z7zmey/php-parser
[30] Хабрапост в поддержку: https://habr.com/ru/company/vk/blog/442284/
[31] Symfony Gets Real-time Push Capabilities!: https://symfony.com/blog/symfony-gets-real-time-push-capabilities
[32] Mercure: https://github.com/dunglas/mercure
[33] Классы в неймспейсах: https://symfony.com/blog/new-in-twig-namespaced-classes
[34] symfony/http-client: https://github.com/symfony/http-client/
[35] слайдах Фабьена: https://speakerdeck.com/fabpot/2-new-symfony-components-httpclient-and-mime?slide=29
[36] King2500/symfony-meta: https://github.com/King2500/symfony-meta
[37] новым возможностям .phpstorm.meta.php: https://blog.jetbrains.com/phpstorm/2019/02/new-phpstorm-meta-php-features/
[38] Неделя Symfony #636 (4-10 марта 2019): https://symfony.com/blog/a-week-of-symfony-636-4-10-march-2019
[39] Laravel 5.8: https://laravel.com/docs/5.8/releases#laravel-5.8
[40] Image: https://vimeo.com/322129784
[41] Laravel Snippet #7: https://blog.laravel.com/laravel-snippet-7
[42] #8: https://blog.laravel.com/laravel-snippet-8
[43] Как заменить фасады и статические вызовы в Laravel на Dependency Injection: https://www.tomasvotruba.cz/blog/2019/03/04/how-to-turn-laravel-from-static-to-dependency-injection-in-one-day/
[44] REST API на Laravel в 100 строк кода: https://habr.com/ru/post/441946/
[45] psalm/laravel-psalm-plugin: https://github.com/psalm/laravel-psalm-plugin
[46] laravel-ide-helper: https://github.com/barryvdh/laravel-ide-helper
[47] Пост: https://medium.com/@muglug/announcing-psalm-support-for-laravel-8a0fc507e220
[48] AlexHnydiuk/laracent: https://github.com/AlexHnydiuk/laracent
[49] nokse: https://habr.com/ru/users/nokse/
[50] avto-dev/roadrunner-laravel: https://github.com/avto-dev/roadrunner-laravel
[51] paramtamtam: https://habr.com/ru/users/paramtamtam/
[52] Yii 2.0.16.1: https://www.yiiframework.com/news/197/yii-2-0-16-1-is-released
[53] Релизный цикл Yii: https://www.yiiframework.com/release-cycle
[54] zhuravljov/yii2-queue-monitor: https://github.com/zhuravljov/yii2-queue-monitor
[55] WyriHaximus/reactphp-cron: https://github.com/wyrihaximus/reactphp-cron
[56] phpinnacle/ensign: https://github.com/phpinnacle/ensign
[57] Amphp: https://github.com/amphp
[58] Предсказываем загрязнение воздуха методом k-ближайших соседей на PHP: https://arkadiuszkondas.com/predict-air-pollution-with-k-nearest-neighbors-and-php/
[59] php-ai/php-ml: https://github.com/php-ai/php-ml
[60] Реализация двоичной кучи на PHP: https://arkadiuszkondas.com/binary-heap-implementation-in-php/
[61] Hand-written service containers: https://matthiasnoback.nl/2019/03/hand-written-service-containers/
[62] О том, как опечатка привела к эксплуатации RCE-уязвимости: https://medium.com/@DanielC7/remote-code-execution-gaining-domain-admin-privileges-due-to-a-typo-dbf8773df767
[63] Как я использую Live Templates в PhpStorm: https://marijn.huizendveld.com/blog/live-templates-in-phpstorm#article
[64] как шарить сниппеты для PhpStorm: https://blog.jetbrains.com/phpstorm/2018/10/sharing-code-snippets-in-phpstorm-easy-way/
[65] Шаринг сессий между Node.js и PHP: https://medium.com/@frontman/share-sessions-between-node-js-and-php-services-285560eb5860
[66] Паблик морозов на собеседовании: https://medium.com/@frontman/php-access-to-private-and-protected-b1028b974169
[67] PHP: изменение стуктуры БД в командной разработке: https://habr.com/ru/post/435438/
[68] Автоматизация конвертирования word файлов в другие форматы: https://habr.com/ru/post/441736/
[69] личку: https://habrahabr.ru/conversations/pronskiy/
[70] почту: mailto:roman@pronskiy.com
[71] твиттер: https://twitter.com/pronskiy
[72] PHP Digest: https://t.me/phpdigest
[73] Прислать ссылку: https://bit.ly/php-digest-add-link
[74] Поиск ссылок по всем дайджестам: https://pronskiy.com/php-digest/
[75] Предыдущий выпуск: PHP-Дайджест № 150: https://habr.com/ru/post/441584/
[76] Источник: https://habr.com/ru/post/443220/?utm_source=habrahabr&utm_medium=rss&utm_campaign=443220
Нажмите здесь для печати.