class DB{
public $db;
public function __construct(){
$this->db = new PDO('mysql:host=localhost.....');
}
return $this->db;
}
$db = new DB();
$app = new App($db);
$db = new PDO('mysql:host=localhost;....'); //просто, переменная
$app = new App($db);
class App{
protected $db;
public function initDB(PDO $db){
$this->db = $db;
}
}
class DB{
public $db;
public function __construct(){
$this->db = new PDO('mysql:host=localhost;dbname=dbname','user','pass');
}
}
$db = new DB();
$app = new App($db);
$db = new PDO('mysql:host=localhost;dbname=dbname','user','pass');
$app = new App($db);
никакого смысла принимать её в App::initDb() вместо конструктора.
Просто я не вижу смысла использования Exception с чем-то еще.