Мужики, запутался. Есть базовый класс App, в который должен быть передан объект БД PDO. У меня три варианта решения, но я чёт запутался с передачей, не пойму, какой лучше (верный), хотя работают все.
Вариант 1class App{
protected $db;
public function __construct(){
$this->db = new PDO('mysql:host=localhost;dbname=dbname', 'user', 'pass');
}
}
Вариант 2class App{
protected $db;
public function initDB(PDO $db){
$this->db = $d;
}
}
class DB{
public $db;
public function instance(){
$this->db = new PDO('mysql:host=localhost;dbname=dbname','user','pass');
return $this->db;
}
}
$app = new App();
$db = new DB();
$app->initDB($db->instance());
Вариант 3class App{
protected $db;
public function initDB(PDO $db){
$this->db = $d;
}
}
class DB{
public $db;
public function __construct(){
$this->db = new PDO('mysql:host=localhost;dbname=dbname','user','pass');
}
}
$db = new DB();
$app = new App();
$app->initDB($db);