数据库连接构造函数:私有或公共


Database connection constructor: private or public?

如果我想创建一个连接类,是否可以将__construct作为私有?或者,如果同时有多个用户,将阻止用户连接?或者我做了一些完全错误的事情,这个连接类甚至不应该存在?(使用没有特定类的连接会更好吗?)

代码:

   <?php
class Connection
{     
    private $host = "hostname";
    private $db_name = "somedatabase";
    private $username = "username";
    private $password = "";
    private $conn;
    private function __construct()
 {

        try {
        $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
            echo "Connected Successfully Bro";
        }
  catch(PDOException $exception) 
  {
            echo "Connection error: " . $exception->getMessage();
        }
        return $this->conn;
    }
}

?>

如果将构造函数设为私有,则只有该类中的方法才能创建它的实例。

如果你正在实现单例模式(https://en.wikipedia.org/wiki/Singleton_pattern),或者如果你正在创建一个工厂类,这是很有用的。

您提供的代码显示类没有任何其他方法,因此如果是这种情况,私有构造函数将使类无用。

简而言之,如果您需要从类本身之外的代码实例化"Connection"类,请使用公共构造函数。