Асинхронное программирование в PHP в 2019 году

В этом выпуске Антон Шабовта, человек, который собаку съел на асинхронном программировании в PHP, рассказывает текущее положение дел в экосистеме, кратко и ёмко про ReactPHP, PHP-PM, swoole, RoadRunner, amphp, ext-async и про свой доклад на PHP Russia 2019.

Читать далее Асинхронное программирование в PHP в 2019 году

Выпуск №48 — Асинхронность в программировании

Моё внимание привлекла статья «Асинхронность в программировании» — это расшифровка доклада Ивана Пузыревского, преподавателя школы анализа данных Яндекса, внутри есть и видео.

Общая концепция асинхронного программирования и выводы изложены весьма доступно и грамотно.

Пересказывать всю статью в этом выпуске подкаста не буду, повторю за Иваном несколько основных тезисов и выскажу свои мысли на тему асинхронного программирования в PHP.

Пользуясь случаем, приглашаю всех на конференцию PHP Russia 2019, 17 мая в Москве – обсудим все эти животрепещущие темы. В частности там будет доклад про асинхронный PHP срывающий все покровы!

Читать далее Выпуск №48 — Асинхронность в программировании

Выпуск №47 — PHP-Дайджест № 149 (28 января – 11 февраля 2019)

В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский делится новостями из мира PHP за последние две недели: PSR-14 и PSR-12 в стадии ревью, JIT для PHP, стартовала работа над PHP 8, пачка свежих RFC из PHP Internals.

Читайте полную версию на Хабре.

Выпуск выходит при поддержке PhpStorm и компании JetBrains.

Выпуск №46 — PHP-Дайджест № 147 (1 – 14 января 2019)

В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский делится новостями о присоединении Никиты Попова к команде PhpStorm в JetBrains. Никита хорошо известен в сообществе как вкладом в ядро, так и юзерленд библиотеками.

Также в выпуске: позитивные новости из PHP Internals о PHP 7.4, обновления всех веток PHP, Psalm 3 и другие релизы.

Читайте полную версию на Хабре.

https://habr.com/post/435956/
https://t.me/phpdigest — PHP Digest в Telegram

Выпуск выходит при поддержке PhpStorm и компании JetBrains.

Выпуск №45 — PHP-Дайджест № 146 — Итоги 2018 года

В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский подводит итоги уходящего года и вспоминает самые значимые события в мире PHP.

Читайте полную версию на Хабре, в ней вас также ждет розыгрыш лицензий на PhpStorm от JetBrains!

https://habr.com/post/434128/
https://t.me/phpdigest — PHP Digest в Telegram

Выпуск выходит при поддержке PhpStorm и компании JetBrains.

Выпуск №44 — PHP-Дайджест № 145 (26 ноября – 10 декабря 2018)

PHP-Дайджест № 145 (26 ноября – 10 декабря 2018)

В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский (https://twitter.com/pronskiy) рассказывает самое важное и интересное, произошедшее в мире PHP с 26 ноября по 10 декабря 2018.

Полная версия дайджеста со всеми упомянутыми ссылками на habr: https://habr.com/post/432600/
PHP Digest в Telegram: https://t.me/phpdigest

Выпуск выходит при поддержке PhpStorm (https://www.jetbrains.com/phpstorm/) и компании JetBrains.

Выпуск №43 — Using Symfony Forms with Rich Domain Models

В этом выпуске Валентин Удальцов из Лиссабона с конференции SymfonyCon Lisbon 2018 (которая проходит прямо сейчас) делает краткий обзор на доклад Using Symfony Forms with Rich Domain Models.
https://lisbon2018.symfony.com/

Читать далее Выпуск №43 — Using Symfony Forms with Rich Domain Models

Выпуск №42 — MySQL 8 и caching_sha2_password

На днях решил попробовать MySQL 8, но при подключении из PHP получил ошибку. Погуглил, нашел советы по исправлению на StackOverflow и в различных блогах — слепое выполнение найденных инструкции исправило ситуацию, подключение заработало, но это не наш путь! Надо разобраться, что собственно происходит и как правильно поступить?

https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password/
https://bugs.php.net/bug.php?id=76651
http://databaseblog.myname.nl/2018/02/how-cachingsha2password-leaks-passwords.html
http://mysqlblog.fivefarmers.com/2015/08/31/protecting-mysql-passwords-with-sha256_password-plugin/

Результаты подключения к MySQL 8.0.13 из различных версий PHP для двух различных пользователей (mysql_native_password и cached_sha2_password) при значении в my.cnf default-authentication-plugin=caching_sha2_password (либо не указывать эту опцию в my.cnf, т.к. это значение по умолчанию)

PHP 7.2.5:
— user_mysql_native: success
— user_cached_sha2: The server requested authentication method unknown to the client [caching_sha2_password]

PHP 7.2.9:
— user_mysql_native: Unexpected server respose while doing caching_sha2 auth: 109
— user_cached_sha2: success

PHP 7.3.0RC5
— user_mysql_native: success
— user_cached_sha2: The server requested authentication method unknown to the client [caching_sha2_password]

Результаты подключения к MySQL 8.0.13 из различных версий PHP для двух различных пользователей (mysql_native_password и cached_sha2_password) при значении в my.cnf default-authentication-plugin=mysql_native_password

PHP 7.2.5:
— user_mysql_native: success
— user_cached_sha2: The server requested authentication method unknown to the client [caching_sha2_password]

PHP 7.2.9
— user_mysql_native: success
— user_cached_sha2: success

PHP 7.3.0RC5
— user_mysql_native: success
— user_cached_sha2: The server requested authentication method unknown to the client [caching_sha2_password]

Выпуск №41 — PHP-Дайджест № 144 (12 – 26 ноября 2018)

В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский рассказывает самое важное и интересное, произошедшее в мире PHP с 12 по 26 ноября 2018.

Послушайте и обязательно оставьте отзыв на сайте https://5minphp.ru или в Twitter @5minphp!

Полная версия дайджеста со всеми упомянутыми ссылками: https://habr.com/post/431042/
PHP Digest в Telegram: https://t.me/phpdigest

Выпуск выходит при поддержке PhpStorm и компании JetBrains.

Выпуск №40 — Continue targeting switch

Начиная с PHP 7.3, если интерпретатор заметит continue без цифры 2 внутри switch внутри цикла он выдаст Warning: «continue» targeting switch is equivalent to «break». Did you mean to use «continue 2»?

Разбираемся в ситуации.

Цитата из документации:

Замечание: Обратите внимание, что в отличие от некоторых других языков, оператор continue применяется в конструкциях switch и действует подобно оператору break. Если у вас конструкция switch находится внутри цикла, и вам необходимо перейти к следующей итерации цикла, используйте continue 2.

http://php.net/manual/ru/control-structures.switch.php