Лучшая практика для передачи объектов в другие новые объекты
Вот моя конструкция CORE:
public $objDb;
public $objConfig;
public $configData;
public $objUrl;
public $objController;
public function __construct() {
$this->objDb = new Dbase();
$this->objConfig = new Config($this->objDb);
$this->objUrl = new Url($this->objDb);
$this->objController = new Controller($this->objUrl, $this->objConfig);
}
как вы можете видеть, я передаю%objDb каждому новому классу, поэтому мне не нужно создавать новый класс DB в каждом, что означает сохранение соединений с базой данных (я думаю)
но это хорошая практика или нет?? я должен в классе URL создать $ objDb = new Dbase (); сейчас в URL есть
public function __construct($db) {
$this->objDb = $db;
$this->process();
}
ОБНОВИТЬ
спасибо за ответ - особенно о внедрении зависимости.
Еще один вопрос: можно ли так делать в CLASS CORE:
public function __construct() {
$this->objDb = new Dbase();
$this->objUrl = new Url();//EMPTY
$this->objController = new Controller($this->objUrl, $this->objConfig);
}
В КЛАССЕ URL
public function __construct() {
$this->objDb = Dbase $db;//declared already in core
$this->process();
}
1 ответ
Вы можете использовать черты, я думаю, это будет хорошая практика.