我正在开发一个小型web项目管理应用程序。我有一些类,比如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";
}
}
}
?>
但我认为这毫无意义。我怎么能做得更好呢?第一个想法:构造函数方法,它连接到数据库。
现在每个人似乎都喜欢一点依赖注入,这将使您的数据库对象与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";
}
}
}