Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Помимо PHP поднимаем темы про инфраструктуру, администрирование Linux и DevOps подходы, сравниваем PHP с другими языками программирования, например с Go, Rust и даже Erlang.
В этом выпуске Антон Шабовта, человек, который собаку съел на асинхронном программировании в PHP, рассказывает текущее положение дел в экосистеме, кратко и ёмко про ReactPHP, PHP-PM, swoole, RoadRunner, amphp, ext-async и про свой доклад на PHP Russia 2019.
Моё внимание привлекла статья «Асинхронность в программировании» — это расшифровка доклада Ивана Пузыревского, преподавателя школы анализа данных Яндекса, внутри есть и видео.
Общая концепция асинхронного программирования и выводы изложены весьма доступно и грамотно.
Пересказывать всю статью в этом выпуске подкаста не буду, повторю за Иваном несколько основных тезисов и выскажу свои мысли на тему асинхронного программирования в PHP.
Пользуясь случаем, приглашаю всех на конференцию PHP Russia 2019, 17 мая в Москве – обсудим все эти животрепещущие темы. В частности там будет доклад про асинхронный PHP срывающий все покровы!
В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский делится новостями из мира PHP за последние две недели: PSR-14 и PSR-12 в стадии ревью, JIT для PHP, стартовала работа над PHP 8, пачка свежих RFC из PHP Internals.
В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский делится новостями о присоединении Никиты Попова к команде PhpStorm в JetBrains. Никита хорошо известен в сообществе как вкладом в ядро, так и юзерленд библиотеками.
Также в выпуске: позитивные новости из PHP Internals о PHP 7.4, обновления всех веток PHP, Psalm 3 и другие релизы.
В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский (https://twitter.com/pronskiy) рассказывает самое важное и интересное, произошедшее в мире PHP с 26 ноября по 10 декабря 2018.
В этом выпуске Валентин Удальцов из Лиссабона с конференции SymfonyCon Lisbon 2018 (которая проходит прямо сейчас) делает краткий обзор на доклад Using Symfony Forms with Rich Domain Models. https://lisbon2018.symfony.com/
На днях решил попробовать MySQL 8, но при подключении из PHP получил ошибку. Погуглил, нашел советы по исправлению на StackOverflow и в различных блогах — слепое выполнение найденных инструкции исправило ситуацию, подключение заработало, но это не наш путь! Надо разобраться, что собственно происходит и как правильно поступить?
Результаты подключения к 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.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.