REACT-MySQLi (ещё один)
MySQLi из коробки поддерживает асинхронные запросы, я написал ещё одну обёртку/адаптер под ReactPHP.
Репозиторий на GitHub
Установка
composer require shuchkin/react-mysqli
Пример
$loop = \React\EventLoop\Factory::create();
$db = \Shuchkin\ReactMySQLi\Client::connect($loop, 'localhost', 'root', '', 'my_db' );
$db->query('SELECT id,name,email FROM user')->then(
function (\Shuchkin\ReactMySQLi\Result $result) {
print_r( $result->all() ); // array
},
function ( \Exception $ex ) {
trigger_error( $ex->getMessage() );
}
);
$loop->run();
Асинхронная отправка почты PHP — react-smtp-client
Мне не хватало в ReactPHP простого инструмента для асинхронной отправки почты, так появился react-smtp-client
$loop = \React\EventLoop\Factory::create();
// у меня установлен postfix, в котором есть локальный smtp сервер
$smtp = new \Shuchkin\ReactSMTP\Client( $loop ); // localhost:25
$smtp->send('info@example.org', 'sergey.shuchkin@gmail.com', 'Test ReactPHP mailer', 'Hello, Sergey!')->then(
function() {
echo 'Message sent'.PHP_EOL;
},
function ( \Exception $ex ) {
echo 'SMTP error '.$ex->getCode().' '.$ex->getMessage().PHP_EOL;
}
);
$loop->run();
Получился аналог mail() для фреймворка ReactPHP. Можно подключаться хоть к GMail:
$smtp = new \Shuchkin\ReactSMTP\Client( $loop, 'tls://smtp.google.com:465', 'username@gmail.com','password' );
хоть к серверу Яндекс.Почты:
$smtp = new \Shuchkin\ReactSMTP\Client( $loop, 'tls://smtp.yandex.ru:465', 'username@yandex.ru', '**password**' );
Устанавливается через composer
composer require shuchkin/react-smtp-client
react-http-client
Штатный HTTP-клиент для ReactPHP мне показался жутко неудобным написал свой и выложил на GitHub https://github.com/shuchkin/react-http-client

Добавил пакет в packagist https://packagist.org/packages/shuchkin/react-http-client
$ composer require shuchkin/react-http-client
Свой SMTP сервер для функции Email2SMS на ReactPHP
Дописал наконец-то сервер транслятор SMTP в HTTP API для smspilot.ru. ReactPHP очень крутой инструмент, с идеальным Promise API, но сцуко слишком бедный в плане качественных пакетов.
99% веб приложений нужно: слой работы с БД, http-клиент и отправка почты — SMTP-клиент. Так вот эти нужные пакеты для reactphp сделаны через жопу. Пришлось написать свои:
- smtp-сервер с авторизацией (LOGIN PLAIN CRAM-MD5)
- простой smtp-клиент, асинхронный аналог функции mail
- нормальный mysqli pool на MYSQL_ASYNC (есть такая штука в mysqlnd, там свой event-loop внутри)
- простой http-клиент c chunked и SSL (во всех проверенных либо не понравился интерфейс, либо что-то не работало)
Если будет интересно, то опубликую на github-е