Я программировал в PHP несколько лет и в прошлом использовал свои собственные методы обработки данных в своих приложениях.
Я построил свой собственный MVC в прошлом и имею разумное понимание ООП в php, но я знаю, что моя реализация требует серьезной работы.
В прошлом я использовал отношения is-a между моделью и таблицей базы данных. Теперь я знаю, после нескольких исследований, что это не лучший способ продвижения вперед. Насколько я понимаю, я должен создавать модели, которые действительно не заботятся о базовой базе данных (или о том, какой механизм хранения следует использовать), но заботятся только об их действиях и их данных.
Из этого я установил, что могу создавать модели let, например, например Person объект этого человека может иметь некоторых детей (человеческих детей), которые также являются объектами Person, содержащимися в массиве (с помощью методов addPerson и removePerson, принимающих объект Person).
Тогда я мог бы создать PersonMapper, который мог бы использовать для получения Лица с определенным "id" или для сохранения Person.
Затем можно найти данные отношений в таблице поиска и создать связанные дочерние объекты для запрашиваемого лица (если они есть), а также сохранить данные в таблице поиска в команде сохранения.
Теперь это подталкивает пределы моих знаний.....
Что, если бы я хотел смоделировать здание с разными уровнями и разными комнатами на этих уровнях? Что, если я захочу разместить некоторые предметы в этих комнатах?
Создать класс для построения, уровня, комнаты и элемента
со следующей структурой.
здание может иметь 1 или несколько объектов уровня, хранящихся в массиве уровень может содержать 1 или несколько объектов помещения, находящихся в массиве комната может содержать 1 или несколько объектов объектов в массиве
и mappers для каждого класса с более высоким уровнем отображения с использованием дочерних преобразователей для заполнения массивов (по запросу объекта верхнего уровня или ленивой загрузки по запросу)
Это, кажется, плотно соединяет разные объекты, хотя и в одном направлении (т.е. пол не обязательно должен находиться в здании, но здание может иметь уровни)
Правильно ли это происходит?
В представлении я хочу показать здание с возможностью выбора уровня, а затем показать уровень с возможностью выбора комнаты и т.д., но я также могу показать структуру, подобную дереву, в здания и уровня и комнаты, в которой они находятся.
Надеюсь, это имеет смысл. Я просто борюсь с концепцией вложенных объектов друг в друга, когда общая концепция oop, кажется, состоит в том, чтобы разделить вещи.
Если кто-то может помочь, это будет действительно полезно.