php--->单例模式封装mysql操作类

php 单例模式封装mysql操作类

单例模式的必要条件(三私一公)
  • 私有的成员属性--防止类外引入这个存放对象的属性
  • 私有的构造方法--为了防止在类外使用new关键字实例化对象
  • 私有的克隆方法--为了防止在类外通过clone生成另一个对象
  • 公有的静态方法--为了让用户进行实例化对象的操作
上代码
class Model{
    private $dbms='mysql';
    private $dbhost='localhost';
    private $dbname='mvcproject';
    private $dbuser='root';
    private $dbpass='root';
    private $dbo;
    private static $_instance;
    private function __construct() {
        echo 'aaa';
        $dbdsn=$this->dbms.":host=".$this->dbhost.';dbname='.$this->dbname;
        $dbh=new PDO($dbdsn,$this->dbuser,$this->dbpass);
        $this->dbo=$dbh;
    }
    private function __clone(){}
    public static function getInstance(){
        if(!self::$_instance){
            self::$_instance=new self;
        }
        return self::$_instance;
    }
    public function query($sql){
        return $this->dbo->query($sql)->fetchAll();
    }
    
}
posted @ 2018-04-12 18:36  技术-刘腾飞  阅读(436)  评论(0编辑  收藏  举报