Вопрос по архитектуре

SombreAdm

Новичок
Вопрос по архитектуре

У меня есть ядро, которое factory собирает все модули системы
Для примера я подключил только 1 модуль
Он при факторинге записывается ссылкой в $core->plugin для дальнейшего использования

Я хочу, чтобы методы core и сохраненные в $core->plugin объекты были доступны для моего объекта, т.е тут все модули становятся взаимосвязанные

Но получаются перекрестные ссылки, пример ниже

Вопрос, это нормально, что классы ссылаются друг на друга таким рекурсивным образом или есть другие варианты сделать все классы доступными друг для друга?

Код:
object(core)(4) {
  ["name"]=>
  string(30) "D:\work\do_sci\engine\core.php"
  ...
  ["plugin"]=>
  array(2) {
    ["clock"]=>
    &object(clock)(3) {
      ["name"]=>
      string(38) "D:\work\do_sci\engine\plugin\clock.php"
      ...
      ["core"]=>
      &object(core)(4) {
        ["name"]=>
        string(30) "D:\work\do_sci\engine\core.php"
        ...
        ["plugin"]=>
        array(2) {
          ["clock"]=>
          &object(clock)(3) {
            ["name"]=>
            string(38) "D:\work\do_sci\engine\plugin\clock.php"
            ...
            ["core"]=>
            &object(core)(4) {
              ["name"]=>
              string(30) "D:\work\do_sci\engine\core.php"
              ...
              ["plugin"]=>
              *RECURSION*
            }
          }
          ["path"]=>
          &object(path)(0) {
          }
        }
      }
    }
    ["path"]=>
    &object(path)(0) {
    }
  }
}
 

Alexandre

PHPПенсионер
что-то намудренно, или якорее второе - я не разобрался.
Вопрос, это нормально, что классы ссылаются друг на друга таким рекурсивным образом
Считаю, что не нормально.
 

SombreAdm

Новичок
:) и какие идеи по поводу организации кода?
допустим, я имею класс DB для работы с мускулом
и имею 2 класса, например новости и гостевая условно
все классы собираются в ядре

как сделать, чтобы ДБ был доступен гостевой и новостям?

делать копию объекта внутри каждого класса?
а если я хочу чтобы у меня была одна копия со всеми ошибками или отчетом по кол-ву запросов.. синглтон?

какие вообще идеи? :)

-~{}~ 25.01.07 14:45:

с другой стороны...

такие перекрестные ссылки во множетсве классов не вызывают проблем с памятью или скоростью обработки скрипта...

мб это все-таки нормально? :)
 

Skubent

Новичок
Alexandre, если в классе потомке завести ссылку на его родителя, то именно такую красоту var_dump() и отдает.
Так что с точки зрения корректности - нормально.

SombreAdm,
Если хочешь, чтобы у тебя было несколько соединений с БД, то ты либо хочешь странного, либо придумывай какой-никакой объект, который будет содержать в себе все соединения и отдавать по идентификатору какому-то.
А если одного соединения тебе достаточно, то синглтон в самый раз.
 
Сверху