天天看點

Medoo 輕量級PHP資料庫架構

作者:不秃頭程式員
Medoo 輕量級PHP資料庫架構

概述

Medoo 是一個輕量級的 PHP 資料庫架構,它提供了一個簡單易用的查詢建構器,允許開發者以一種優雅的方式與資料庫進行互動。Medoo 使用 PDO 擴充來提供資料庫抽象層,支援多種資料庫系統,如:MySQL、PostgreSQL、SQLite 等。

特點

  1. 簡潔的文法:Medoo 提供了簡潔的查詢建構文法,使得編寫 SQL 查詢變得直覺和容易。
  2. 鍊式操作:支援鍊式調用,使得代碼更加簡潔和易于閱讀。
  3. 類型安全:通過 PDO 的參數綁定,Medoo 提供了良好的類型安全。
  4. 跨資料庫支援:支援多種資料庫類型,讓開發者可以輕松切換資料庫系統。
  5. 易于擴充:Medoo 的架構設計允許開發者根據需要進行擴充和自定義

基本使用

安裝

composer require catfan/medoo           

使用

<?php
/**
 * @desc medoo.php 描述資訊
 * @date 2024/6/29 17:42
 */
declare(strict_types=1);

require_once __DIR__ . '/../vendor/autoload.php';

use Medoo\Medoo;

$database = new Medoo([
    'type' => 'mysql',
    'host' => 'dnmp-mysql',
    'database' => 'demo',
    'username' => 'root',
    'password' => '123456'
]);

$database->insert('demo_user', [
    'username' => 'Tinywan',
    'mobile' => 1366936666
]);

$data = $database->select('demo_user', [
    'username',
    'mobile'
], [
    'id' => 72
]);

echo json_encode($data);           

列印輸出

[{"username":"layne","mobile":"xxxxxxxxxxx"}]           

webman使用

安裝

安裝medoo插件包

composer require webman/medoo           

配置

配置檔案位置在config/plugin/webman/medoo/database.php

使用

<?php
namespace app\controller;

use support\Request;
use Webman\Medoo\Medoo;

class Index
{
    public function index(Request $request)
    {
        $user = Medoo::get('user', '*', ['uid' => 1]);
        return json($user);
    }
}           

多資料庫配置

config/plugin/webman/medoo/database.php裡新增一個配置,key任意,這裡使用的是resty。

<?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'
        ]
    ],
    // 這裡新增了一個resty的配置
    'resty' => [
        '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'
        ]
    ],
];           

使用

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

小結

Medoo 适合于需要快速開發和簡單資料庫操作的項目。如果你正在尋找一個輕量級且功能強大的 PHP 資料庫架構,Medoo 可能是一個不錯的選擇。

Medoo官方文檔:https://medoo.in/api/select