Base de données Medoo
webman/medoo ajoute des fonctionnalités de pool de connexions basées sur Medoo et prend en charge les environnements de coroutine et non-coroutine, l'utilisation est la même que celle de Medoo.
Attention
Ce manuel est pour la version webman v2, si vous utilisez la version webman v1, veuillez consulter le manuel de la version v1
Installation
composer require webman/medoo
Configuration de la base de données Medoo
L'emplacement du fichier de configuration est config/plugin/webman/medoo/database.php
Utilisation de la base de données 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);
}
}
Astuce
Medoo::get('user', '*', ['uid' => 1]);
équivaut à
Medoo::instance('default')->get('user', '*', ['uid' => 1]);
Configuration de plusieurs bases de données Medoo
Configuration
Ajoutez une nouvelle configuration dans config/plugin/webman/medoo/database.php
, la clé peut être n'importe quoi, ici nous utilisons 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' => [ // Configuration du pool de connexions
'max_connections' => 5, // Nombre maximal de connexions
'min_connections' => 1, // Nombre minimal de connexions
'wait_timeout' => 60, // Temps d'attente maximal pour obtenir une connexion du pool, une exception sera levée après le timeout
'idle_timeout' => 3, // Temps d'inactivité maximal d'une connexion dans le pool, sera fermé après le timeout, jusqu'à ce que le nombre de connexions soit égal à min_connections
'heartbeat_interval' => 50, // Temps de détection de heartbeat du pool de connexions, en secondes, recommandé inférieur à 60 secondes
]
],
// Ici, une nouvelle configuration 'other' a été ajoutée
'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,
],
],
];
Utilisation de la base de données Medoo
$user = Medoo::instance('other')->get('user', '*', ['uid' => 1]);