Как обрабатывать экземпляры базы данных с помощью PDO - PullRequest
0 голосов
/ 27 февраля 2012

Я работаю над небольшим приложением для управления веб-проектами.У меня есть несколько классов, таких как Clients (), Services (), Projects () и т. Д. Каждый класс содержит методы, такие как getClient (), newClient (), editClient (), ... и каждый из этих методов требует подключения к базе данных.Я включил дополнительный класс PDO.

Текущий код класса моих клиентов:

<?php
// include database class
require_once('../../../lib/php/classes/database/database.class.php');

class Client {

    public function getClient() {
        $db = Database::get("default");
        $clients = $db->select("SELECT * FROM clients ORDER BY name ASC");
        return $clients;
    }

    public function newClient($values) {
        $db = Database::get("default");
        if ($db->insert("INSERT INTO clients (name,initial,payment,hourly_rate,active) VALUES (?,?,?,?,?)",$values)) {
        } else {
            print "Inserting failed";
        }
    }

}
?>

Но я думаю, что это не имеет смысла.Как я могу сделать это лучше?Первая идея: метод конструктора, который подключается к БД.

1 Ответ

2 голосов
/ 27 февраля 2012

В наши дни всем нравится немного внедрять зависимости, это отделит ваш объект базы данных от класса Client.

class Client {

    private $db = null;

    public function __construct($db) {
        $this->db = $db;
    }
    public function getClient() {
        $clients = $this->db->select("SELECT * FROM clients ORDER BY name ASC");
        return $clients;
    }

    public function newClient($values) {
        if ($this->db->insert("INSERT INTO clients (name,initial,payment,hourly_rate,active) VALUES (?,?,?,?,?)",$values)) {
        } else {
            print "Inserting failed";
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...