He estado programando en PHP durante varios años y en el pasado adopté métodos propios para manejar datos dentro de mis aplicaciones.PHP Domain Model
He construido mi propio MVC en el pasado y tengo una comprensión razonable de OOP en php, pero sé que mi implementación necesita un trabajo serio.
En el pasado he usado una relación is-a entre un modelo y una tabla de base de datos. Ahora sé, después de hacer algunas investigaciones, que este no es realmente el mejor camino a seguir. Por lo que yo entiendo, debería crear modelos que realmente no se preocupen por la base de datos subyacente (o el mecanismo de almacenamiento que se vaya a utilizar), pero solo se preocupan por sus acciones y sus datos.
De esto he establecido que puedo crear modelos de digamos, por ejemplo, una persona y este objeto persona podría tener algunos niños (niños humanos) que también son objetos Person en una matriz (con métodos addPerson y removePerson, aceptando un objeto Persona).
Pude crear una PersonMapper que podría usar para obtener una Persona con una 'id' específica, o para salvar a una Persona.
Esto podría entonces buscar los datos de relación en una tabla de búsqueda y crear los objetos secundarios asociados para la persona que se ha solicitado (si hay alguno) y guardar los datos en la tabla de búsqueda en el comando guardar.
Esto está empujando los límites de mi conocimiento .....
Lo que si quería modelar un edificio con diferentes niveles y diferentes habitaciones dentro de esos niveles? ¿Qué sucede si quiero colocar algunos artículos en esas habitaciones?
¿Me cree una clase para la construcción, nivel, cuarto y elemento
con la estructura siguiente.
edificio puede tener 1 o muchos objetos nivel celebradas en un nivel de matriz puede tener 1 o muchos habitación objetos retenidos en una sala de array pueden tener 1 o muchos objetos de elemento mantenidos en una matriz
y mapeadores para cada clase con mapeadores de nivel superior que utilizan mapeadores hijo para rellenar las matrices (ya sea a pedido del objeto de nivel superior o de carga diferida a petición)
Esto parece acoplar estrechamente los diferentes objetos aunque en una dirección (es decir, un piso no necesita estar en un edificio pero un edificio puede tener niveles)
¿Es esta la manera correcta de hacer las cosas?
Dentro de la vista, quiero mostrar un edificio con la opción de seleccionar un nivel y luego mostrar el nivel con una opción para seleccionar una habitación, etc. pero también me gustaría mostrar una estructura de elementos en árbol el edificio y en qué nivel y habitación se encuentran.
Espero que esto tenga sentido. Simplemente estoy luchando con el concepto de anidar objetos uno dentro del otro cuando el concepto general de oop parece ser separar cosas.
Si alguien puede ayudar, sería realmente útil.
the Nesting sounds right. Puede intentar hacer la misma pregunta en el [Sitio de programadores] (http://programmers.stackexchange.com) – Malachi
No firme sus publicaciones por favor – Malachi
Lo siento por la firma de publicaciones, no lo hará en el futuro. –