php class 内的 Medoo 对象

Medoo object inside a php class

我对如何使用 meddo 配置感到困惑 class

$database = new Medoo([
    'database_type' => 'mysql',
    'database_name' => 'name',
    'server' => 'localhost',
    'username' => 'your_username',
    'password' => 'your_password',
]);

在另一个里面 class

class Blog {
    public function getBlogs(){
       return $database->select('post', "title");
    }
}

现在我正在使用全局变量来解决我可以使用的任何直接方式。

我不想这样用

<?php
include 'classes/config.php';

class blog{


function A(){
    global $database;
    return $database->select('post', "title");
    }
}


function B(){
    global $database;
    return $database->select('post', "title");
    }
}


function C(){
    global $database;
    return $database->select('post', "title");
    }
}


?>

尝试将 $database 传递给 __construct(),然后将 $database 分配给 class 私有变量

include 'config.php';
class blog{
    private $database = null;

    function __construct($db)
    {
        $this->database = $db;
    }

    function A(){
        $this->database->select('post', "title");
    }
}

$obj = new blog($database);
$obj->A();

您可以使用 use 关键字为函数引用数据库对象。

https://www.php.net/manual/en/functions.anonymous.php

$database = new Medoo();

class Blog {

    public get() use ($database) {
        return $database->select('post', "title");
    }
}

或者使用官方推荐的单例模式

https://medoo.in/api/collaboration