Лучшая практика для передачи объектов в другие новые объекты

Вот моя конструкция 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 ответ

Вы можете использовать черты, я думаю, это будет хорошая практика.

http://php.net/manual/ru/language.oop5.traits.php

Другие вопросы по тегам