build/extracted-examples/api/hack/class.AsyncMysqlConnectionPool.method.connect/basic-usage.hack (43 lines of code) (raw):

// WARNING: Contains some auto-generated boilerplate code, see: // HHVM\UserDocumentation\MarkdownExt\ExtractedCodeBlocks\FilterBase::addBoilerplate namespace HHVM\UserDocumentation\Api\Hack\ClassAsyncMysqlConnectionPoolMethodConnect\BasicUsage; use \Hack\UserDocumentation\API\Examples\AsyncMysql\ConnectionInfo as CI; class MyPool { private \AsyncMysqlConnectionPool $pool; public function __construct() { $this->pool = new \AsyncMysqlConnectionPool(darray[]); } public function getPool(): \AsyncMysqlConnectionPool { return $this->pool; } public async function connect(): Awaitable<\AsyncMysqlConnection> { return await $this->pool ->connect(CI::$host, CI::$port, CI::$db, CI::$user, CI::$passwd); } } async function get_num_rows(\AsyncMysqlConnection $conn): Awaitable<int> { $result = await $conn->query('SELECT * FROM test_table'); return $result->numRows(); } async function get_row_data( \AsyncMysqlConnection $conn, ): Awaitable<Vector<KeyedContainer<int, ?string>>> { $result = await $conn->query('SELECT * FROM test_table'); return $result->vectorRows(); } async function run_it_1(MyPool $pool): Awaitable<void> { $conn = await $pool->connect(); $rows = await get_num_rows($conn); \var_dump($rows); } async function run_it_2(MyPool $pool): Awaitable<void> { $conn = await $pool->connect(); $data = await get_row_data($conn); \var_dump($data->count()); // Should show only one created pool connection since we are pooling it \var_dump($pool->getPool()->getPoolStats()); } <<__EntryPoint>> async function run(): Awaitable<void> { \init_docs_autoloader(); $pool = new MyPool(); await run_it_1($pool); await run_it_2($pool); }