У меня есть основной класс, например
class MY_API {
function __construct($db) {
$this->something = new MY_SOMETHING($db);
$this->anotherthing = new MY_ANOTHERTHING($db);
}
}
Так что я могу получить доступ к этому с
$this->something->somefunction();
Но я не уверен, как я мог получить доступ к:
$this->anotherthing->anotherfunction();
Изнутри:
$this->something->somefunction();
Я думаю, мне нужно что-то вроде:
$this->parent->anotherthing->anotherfunction();
Возможно ли это вообще или мне нужно изменить способ построения классов?
В идеале я просто хочу, чтобы эти функции находились в другом файле, а не в одном очень большом файле, и чтобы каждая функция в каждом файле была доступна друг другу.
Если MY_SOMETHING
имеет зависимость от MY_ANOTHERTHING
Вставь это!
class MY_SOMETHING {
private $db;
private $anotherThing;
public function __construct($db, MY_ANOTHERTHING $anotherThing) {
$this->db = $db;
$this->anotherThing = $anotherThing;
}
и в вашем MY_API
конструктор
public function __construct($db) {
$this->anotherthing = new MY_ANOTHERTHING($db);
$this->something = new MY_SOMETHING($db, $this->anotherThing);
}
Теперь ваш MY_SOMETHING
класс может использовать $this->anotherThing
в любом из его методов.
Других решений пока нет …