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