Что значит это отношение объектов? Копаясь в коде Opencart в самом начале вижу такие выражения:$registry = new Registry();
// Тут куча разного кода, потом:
// Event
$event = new Event($registry);
$registry->set('event', $event); // То что тут происходит понятно
// Loader
$loader = new Loader($registry);
$registry->set('load', $loader); // Здесь тоже
Что значит когда объект registry передается в конструктор объектов event и loader и потом сам же принимает эти объекты в себя? Странно выглядит. Не совсем понятно для чего это сделано, для того чтобы объект loader имел доступ ко всему содержимому объекта registry в дальнейшем?

28 Авг 2020 в 19:47
156 +3
0
Ответы
1

Это отношение объектов в коде Opencart называется инъекцией зависимостей (dependency injection). При использовании инъекции зависимостей объект registry передается в конструктор объектов event и loader для того, чтобы они могли работать с этим общим реестром данных.

Такой подход используется для упрощения кода и улучшения его читаемости, а также для уменьшения связанности между объектами. В данном случае объект registry служит контейнером, который содержит различные объекты и ресурсы, и передается в другие объекты для того, чтобы они могли использовать эти ресурсы при необходимости.

Таким образом, передача объекта registry в конструкторы объектов event и loader, а затем его сохранение в самом объекте registry позволяет создать централизованный доступ к различным ресурсам и обеспечить наличие одной точки управления для них.

18 Апр в 10:37
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир