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, // 연결 풀 내 연결 최대 유휴 시간, 타임아웃 시 회수, 최소 연결 수 유지
'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 공식 문서를 참조하십시오.