Модель домена PHP

Я программировал на PHP в течение нескольких лет и в прошлом использовал собственные методы для обработки данных в своих приложениях.

В прошлом я создавал свой собственный MVC, и у меня есть разумное понимание ООП в php, но я знаю, что моя реализация требует серьезной работы.

В прошлом я использовал отношение is-a между моделью и таблицей базы данных. Теперь, после некоторых исследований, я знаю, что это не самый лучший путь вперед. Насколько я понимаю, я должен создавать модели, которые неОн действительно заботится о базовой базе данных (или любом другом механизме хранения), но заботится только об их действиях и данных.

Исходя из этого, я установил, что могу создавать модели, скажем, например, Person, объект this person может иметь несколько дочерних элементов (дочерних элементов), которые также являются объектами Person, содержащимися в массиве (с помощью методов addPerson и removePerson, принимающих объект Person). ,

Затем я мог бы создать PersonMapper, который я мог бы использовать, чтобы получить человека с определеннымЯ бы'или чтобы спасти человека.

Это может затем найти данные взаимосвязи в таблице поиска и создать связанные дочерние объекты для человека, который был запрошен (если есть), и аналогичным образом сохранить данные в таблице поиска по команде сохранения.

Это сейчас раздвигает границы моих знаний .....

Что если бы я хотел смоделировать здание с разными уровнями и разными комнатами на этих уровнях? Что если я захочу разместить некоторые вещи в этих комнатах?

Буду ли я создавать класс для здания, уровня, комнаты и предмета

со следующей структурой.

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

и сопоставители для каждого класса с сопоставителями более высокого уровня, использующими дочерние сопоставители для заполнения массивов (по запросу объекта верхнего уровня или отложенной загрузки по запросу)

Кажется, что это тесно связывает различные объекты, хотя и в одном направлении (т. Е. Пол не обязательно должен быть в здании, но у здания могут быть уровни)

Это правильный путь?

В представлении я хочу показать здание с возможностью выбора уровня, а затем показать уровень с возможностью выбора комнаты и т. Д., Но я также могу показать древовидную структуру элементов в здании и что уровень и комната, в которой они находятся.

Я надеюсь это имеет смысл. Я просто борюсь с концепцией вложения объектов друг в друга, когда общая концепция oop, кажется, состоит в разделении вещей.

Если кто-то может помочь, это было бы очень полезно.

Ответы на вопрос(3)

Ваш ответ на вопрос