状态:接受唯一的答案选择。谢谢。
我不应该在这里使用静态函数和self::
而不是$this->
。我会在我的所有模型类中使用这个类Dao作为super class
。
Dao类将是所有model classes.
它应该是单身吗?它应该使用静态吗?
任何提示?
<?php
class Dao extends Object{
private $con;
//will put this in defines includes file. Or user from WP.
private $dbhost = "localhost";
private $dbname = "wpm";
private $dbuser = "root";
private $dbpass = "root";
public function __construct() {
if(!$this->con){
$this->con = new PDO("mysql:host=$this->dbhost;dbname=$this->dbname",$this->dbuser,$this->dbpass); //will make it generic.
}
}
protected function getCon(){
if(!$this->con){
$this->con = new PDO("mysql:host=$this->dbhost;dbname=$this->dbname",$this->dbuser,$this->dbpass);
}
return $this->con;
}
protected function executeQuery($query, $fetchType, $paramArray){
$stmt = $this->getCon()->geprepare($query);
$stmt->execute($paramArray);
$stmt->setFetchMode($fetchType);// $stmt->setFetchMode(PDO::FETCH_ASSOC);
$result = $stmt->fetch();
return $result;
}
}
?>
答案 0 :(得分:1)
DAO不是模特。这是不同的课程。
DAO类不应该是所有模型的超类。模型原型应该是所有模型的超类。
&#34;超模&#34;应该有像delete(),save(),find()等方法。应将DAO分配给模型变量并以此方式使用。
至于超级名模应该是静态的 - 这取决于。大多数框架都掩盖了加载器中的静态,这与我的观点完全相同,但是由于某些原因而被鄙视的诚实静态因此必须使用伪装。