5.适配器模式

来源:互联网 发布:北京科瑞明软件招聘 编辑:程序博客网 时间:2024/04/30 19:15

这里写图片描述
这里写图片描述

IDatabase.php

<?phpnamespace IMooc;interface IDatabase{    public function connect($host,$user,$password,$dbname);    public function query($sql);    public function close();}

MySQL.php

<?phpnamespace IMooc\Database;use IMooc\IDatabase;class MySQL implements IDatabase{    protected $conn;    public function connect($host,$user,$password,$dbname)    {        $this->conn = mysql_connect($host,$user,$password);        mysql_select_db($dbname);    }    public function query($sql)    {        $res = mysql_query($sql,$this->conn);        return $res;    }    public function close()    {        $this->close($this->conn);    }}

MySQLi.php

<?phpnamespace IMooc\Database;use IMooc\IDatabase;class MySQLi implements IDatabase{    protected $conn;    public function connect($host,$user,$password,$dbname)    {        $conn = mysqli_connect($host,$user,$password,$dbname);        $this->conn = $conn;    }    public function query($sql)    {        return mysqli_query($this->conn,$sql);    }    public function close()    {        mysqli_close($this->conn);    }}

POD.php

<?phpnamespace IMooc\Database;use IMooc\IDatabase;class PDO implements IDatabase{    protected $conn;    public function connect($host,$user,$password,$dbname)    {       $this->conn = new \PDO("mysql:host=$host;dbname=$dbname",$user,$password);    }    public function query($sql)    {        return $this->conn->query($sql);    }    public function close()    {        unset($this->conn);    }}

index.php

<?phpdefine('BASEDIR',__DIR__);include BASEDIR . '/IMooc/Loader.php';spl_autoload_register('\\IMooc\\Loader::autoload');/*$db=IMooc\Factory::createDatabase();$db = \IMooc\Register::get('db1');var_dump(get_class($db));*/// MySQL 实现/*$db = new IMooc\Database\MySQL();$db->connect('localhost','root','123456','test');$res = $db->query('select * from test;');while($row = mysql_fetch_row($res)){    $rows[] = $row;}var_dump($rows);*/// MySQLi 实现/*$db = new IMooc\Database\MySQLi();$db->connect('localhost','root','123456','test');$res = $db->query('select * from test;');while($row = mysqli_fetch_row($res)){    $rows[] = $row;}var_dump($rows);*/// PDO 实现$db = new IMooc\Database\PDO();$db->connect('localhost','root','123456','test');$res = $db->query('select * from test;');while($row = mysqli_fetch_row($res)){    $rows[] = $row;}var_dump($rows);
0 0