singleton — PHP и круговая зависимость от $ this

У меня есть некоторые сомнения по поводу круговой зависимости.

Я хочу разработать модуль для PHP-фреймворка. У меня есть класс для соединения с фреймворком и этот экземпляр несколько объектов. В примере есть A и B, но есть больше.

Я хочу получить доступ к функциям и параметрам объектов из других классов, но какой дизайн лучше?

class Main {
$a;
$b;

public function __constructor() {
$this->a = new A($this);
$this->b = new B($this);
}

public function getA() {
return $this->a;
}
}

class A {
$main;

public function __constructor(Main $main) {
$this->main = $main;
}

public function functionA() {}
}

class B {
$main;

public function __constructor(Main $main) {
$this->main = $main;
}

public function functionB() {
$this->main->getA()->functionA();
}
}

Я понимаю, что у меня есть круговые зависимости. Это не слишком дорого, потому что только один раз экземпляры этих объектов, но я хочу сделать правильно.

Другие варианты у меня есть:

  • Передайте только объекты (A, B, C, …) классам, которые в этом нуждаются. Возможно, я закончу другими круговыми зависимостями.
  • Используйте синглтон для Main
  • Избегайте экземпляров объектов с $ this и создавайте больше вещей в Main.

Я полагаю, что последний вариант предпочтительнее, но я хочу простой основной класс для получения запросов к модулю.

Есть ли шаблон дизайна для моей структуры? Любой совет?

Благодарю.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …