Ampで構築された非同期MySQLクライアント。
amp/mysql
は、Amp同時実行フレームワーク上に構築された非同期MySQLクライアントです。ライブラリは、PromiseベースのAPIを公開して、複数のMySQL接続を同時に動的にクエリします。クライアントは、これらのクエリを利用可能な接続のスケーラブルなプール全体に透過的に分散し、100%ユーザーランドのPHPを使用して分散します。外部拡張の依存関係はありません(例: ext/mysqli
、 ext/pdo
など)。
Features
- シングルスレッドの完全な同時実行を可能にする非同期API
- MySQLの基本的な同期接続プロトコルを克服する透過的なコネクションプーリング
- MySQL転送エンコーディングのサポート(gzip、TLS暗号化)
- すべてのMySQLコマンドのサポート†
Project Goals
- 複数のMySQLクエリを並列に発行するためのノンブロッキングAPIの公開
- 完全なMySQLプロトコルと利用可能なすべてのコマンドを非同期でサポートする
Installation
このパッケージは、 Composerの依存関係としてインストールできます。
composer require amphp/mysql
Requirements
- PHP 7.1+
- Ampフレームワーク(composer経由でインストール)
ドキュメントと例
より広範なコード例は、 examples
ディレクトリにあります。
Amp\Loop::run(function() {
$config = Amp\Mysql\ConnectionConfig::fromString(
"host=127.0.0.1 user=username password=password db=test"
);
/** @var \Amp\Mysql\Pool $pool */
$pool = Amp\Mysql\pool($config);
/** @var \Amp\Mysql\Statement $statement */
$statement = yield $pool->prepare("SELECT * FROM table_name WHERE id = :id");
/** @var \Amp\Mysql\ResultSet $result */
$result = yield $statement->execute(['id' => 1337]);
while (yield $result->advance()) {
$row = $result->getCurrent();
// $ rowは、列値の連想配列です。例:$ row ['column_name']
}
});
Versioning
amphp/mysql
は、他のすべての amphp
パッケージと同様に、semverセマンティックバージョニング仕様に従います。
Security
セキュリティ関連の問題を発見した場合は、問題追跡システムを使用する代わりに、 contact@amphp.org
に電子メールを送信してください。
License
MITライセンス(MIT)。 LICENSE
を参照してください。