Medoo 数据库
webman/medoo добавляет функцию пула соединений на основе Medoo и поддерживает как корутины, так и некорутинируемую среду, используя тот же синтаксис, что и Medoo.
注意
Настоящее руководство относится к версии webman v2. Если вы используете версию webman v1, пожалуйста, обратитесь к руководству v1
Установка
composer require webman/medoo
Настройка базы данных Medoo
Местоположение конфигурационного файла: config/plugin/webman/medoo/database.php
Использование базы данных Medoo
<?php
namespace app\controller;
use support\Request;
use support\Medoo;
class Index
{
public function index(Request $request)
{
$user = Medoo::get('user', '*', ['uid' => 1]);
return json($user);
}
}
提示
Medoo::get('user', '*', ['uid' => 1]);
эквивалентно
Medoo::instance('default')->get('user', '*', ['uid' => 1]);
Настройка нескольких баз данных Medoo
Конфигурация
В config/plugin/webman/medoo/database.php
добавьте новую конфигурацию, ключ может быть произвольным, здесь используется other
.
<?php
return [
'default' => [
'type' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'port' => 3306,
'prefix' => '',
'logging' => false,
'error' => PDO::ERRMODE_EXCEPTION,
'option' => [
PDO::ATTR_CASE => PDO::CASE_NATURAL
],
'command' => [
'SET SQL_MODE=ANSI_QUOTES'
],
'pool' => [ // Конфигурация пула соединений
'max_connections' => 5, // Максимальное количество соединений
'min_connections' => 1, // Минимальное количество соединений
'wait_timeout' => 60, // Максимальное время ожидания получения соединения из пула, по истечении времени будет выброшено исключение
'idle_timeout' => 3, // Максимальное время простоя соединения в пуле, по истечении времени соединение будет закрыто и возвращено в пул, пока количество соединений не станет равным min_connections
'heartbeat_interval' => 50, // Время проверки пульса пула соединений, в секундах, рекомендовано менее 60 секунд
]
],
// Здесь добавлена конфигурация other
'other' => [
'type' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'port' => 3306,
'prefix' => '',
'logging' => false,
'error' => PDO::ERRMODE_EXCEPTION,
'option' => [
PDO::ATTR_CASE => PDO::CASE_NATURAL
],
'command' => [
'SET SQL_MODE=ANSI_QUOTES'
],
'pool' => [
'max_connections' => 5,
'min_connections' => 1,
'wait_timeout' => 60,
'idle_timeout' => 3,
'heartbeat_interval' => 50,
],
],
];
Использование базы данных Medoo
$user = Medoo::instance('other')->get('user', '*', ['uid' => 1]);
См. также Официальная документация Medoo