Base de datos Medoo

webman/medoo añade funcionalidades de grupo de conexiones sobre Medoo y es compatible tanto con entornos de corrutinas como no corrutinas, utilizando la misma sintaxis que Medoo.

Nota
Este manual es para la versión v2 de webman, si está utilizando la versión v1 de webman, consulte el manual de la versión v1

Instalación

composer require webman/medoo

Configuración de la base de datos Medoo

La ubicación del archivo de configuración es config/plugin/webman/medoo/database.php

Uso de la base de datos 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);
    }
}

Sugerencia
Medoo::get('user', '*', ['uid' => 1]);
es equivalente a
Medoo::instance('default')->get('user', '*', ['uid' => 1]);

Configuración de múltiples bases de datos Medoo

Configuración
Añada una nueva configuración en config/plugin/webman/medoo/database.php, la clave puede ser cualquier nombre, aquí se utiliza 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' => [ // configuración del grupo de conexiones
            'max_connections' => 5, // número máximo de conexiones
            'min_connections' => 1, // número mínimo de conexiones
            'wait_timeout' => 60,   // tiempo máximo de espera para obtener una conexión del grupo, después de lo cual se lanzará una excepción
            'idle_timeout' => 3,    // tiempo máximo de inactividad de las conexiones en el grupo, después de lo cual se cerrarán y recuperarán, hasta que el número de conexiones sea igual a min_connections
            'heartbeat_interval' => 50, // intervalo de detección de latidos del grupo de conexiones, en segundos, se recomienda que sea menor de 60 segundos
        ]
    ],
    // Aquí se añadió la configuración 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 de la base de datos Medoo

$user = Medoo::instance('other')->get('user', '*', ['uid' => 1]);

Consulte la documentación oficial de Medoo