有一个连接到数据库:
class Db {
public static function getConnection() {
$paramsPath = ROOT . '/config/db_params.php';
$params = include($paramsPath);
$dsn = "mysql:host={$params['host']};dbname={$params['dbname']}";
$db = new PDO($dsn, $params['user'], $params['password']);
$db->exec("set names utf8");
return $db;
}
}
在每个类中,在每个方法中,我都这样做:
public static function getCategoriesList() {
$db = Db::getConnection();
$result = $db->query('SELECT id, name FROM category '
. 'ORDER BY sort_order ASC');
.........
}
如何摆脱这个糟糕的代码? $db = Db::getConnection();
如何在索引文件中调用连接而不是在每个方法中每次都连接?怎么可能创建一个连接类,在其他类中通过构造函数敲它呢?
只需将连接保存在静态变量中:
然而,它能够在需要第二次连接时立即传递疼痛。
在您的情况下(静态类),可以在客户端类中完成相同的操作:
下面的所有内容只是我对它应该是多少的看法。
最好将连接存储在一个实例
DB
中,并为请求实现几个方法,使用它。在没有与基类连接的情况下存在的类没有意义,您可以将基类对象传递给构造函数并将其存储在,
$this->db
比方说。一些控制器.php