Banco de dados Medoo
webman/medoo adiciona recursos de pool de conexões sobre o Medoo, e suporta ambientes de corrotina e não-corrotina, com a mesma utilização do Medoo.
Atenção
Este manual é para a versão webman v2. Se você está usando a versão webman v1, por favor, consulte o manual da versão v1.
Instalação
composer require webman/medoo
Configuração do banco de dados Medoo
O arquivo de configuração está localizado em config/plugin/webman/medoo/database.php
.
Uso do banco de dados 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);
}
}
Dica
Medoo::get('user', '*', ['uid' => 1]);
é equivalente a
Medoo::instance('default')->get('user', '*', ['uid' => 1]);
Configuração de múltiplos bancos de dados Medoo
Configuração
Adicione uma nova configuração em config/plugin/webman/medoo/database.php
, a chave pode ser qualquer uma, aqui usamos 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' => [ // Configuração do pool de conexões
'max_connections' => 5, // Número máximo de conexões
'min_connections' => 1, // Número mínimo de conexões
'wait_timeout' => 60, // Tempo máximo de espera para obter conexão do pool, após o qual será lançada uma exceção
'idle_timeout' => 3, // Tempo máximo de inatividade para conexões no pool, após o qual será fechado e reciclado, até que o número de conexões seja igual a min_connections
'heartbeat_interval' => 50, // Tempo de verificação de heartbeat do pool de conexões, em segundos, recomendado que seja inferior a 60 segundos
]
],
// Aqui adicionamos uma nova configuração chamada 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,
],
],
];
Uso do banco de dados Medoo
$user = Medoo::instance('other')->get('user', '*', ['uid' => 1]);
Consulte a documentação oficial do Medoo