Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP单例数据库类,我需要avice_Php_Pdo_Singleton - Fatal编程技术网

PHP单例数据库类,我需要avice

PHP单例数据库类,我需要avice,php,pdo,singleton,Php,Pdo,Singleton,假设我有一个单例PDO db连接类 <?php class DbConn{ private $host = 'localhost'; private $db_name = 'some_db'; private $user = 'user'; private $pass = 'pass'; private $db; private static $instance = NULL; private function __construct(){ try{

假设我有一个单例PDO db连接类

<?php
class DbConn{
  private $host = 'localhost';
  private $db_name = 'some_db';
  private $user = 'user';
  private $pass = 'pass';
  private $db;
  private static $instance = NULL;

 private function __construct(){
  try{
      $this->db = new PDO("mysql:host=$this->host;dbname=$this->db_name","$this->user","$this->pass");
      $this->db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION);
  }
  catch(PDOException $e){
     echo $e->getMessage();
  }
 }

 public static function getInstance(){
   if(!self::$instance instanceof self){
      self::$instance = self;
   }
   return self::$instance;
 }

 private function __clone(){}

 function __destruct(){
    unset($this->db);
 }
}

单身汉不被认为是坏习惯吗?至少从我听说的情况来看,一般来说,统计(和关联的单例)被认为是不好的做法,因为它使测试更加困难,等等。我不同意哲学:静态/单体是你的代码的祸根,静力学之前还有其他的设计偏好要考虑。如果你使用它们,试着保持它的轻巧和简单。除此之外,我建议你看一看。QueryHouse类呢?基本上我想把它和DbConn类分开。我打破了OOP的概念,因为查询属于数据库操作,它们需要在db类中。感谢大家的解释,它回答了我的问题。