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 الرسمية