MVC es el patrón de diseño más incomprendido. Hay, por definición, un modelo.
Cuando un urbanista propone un proyecto, diseña un modelo para él. Las entidades separadas de las que puede estar compuesto el modelo: edificios, calles, parques, típicamente no están representadas por modelos separados: todas son facetas del modelo único.
Por lo tanto, en MVC, el modelo puede estar compuesto de diferentes entidades, y esa es probablemente la mejor palabra para esto: entidad, como en una entidad representada por una tabla de base de datos. El modelo en MVC podría incluso ser algo más abstracto de lo que realmente se representa en el código, sino más bien un paraguas conceptual para todos los datos sobre los que la aplicación podría necesitar actuar.
Teniendo en cuenta esto, si estas entidades tienen sus propios métodos, en particular métodos que podrían corresponder a las facetas de CRUD (crear, leer, actualizar, eliminar), deben no estar expuesto directamente al controlador, es demasiado bajo nivel de abstracción Estos bloques de construcción deberían formarse en una interfaz más gruesa, por ejemplo, podría eliminar un registro pero luego devolver la lista de registros después de la eliminación. El controlador solo necesita acceder a un método de grano más grueso que realiza todo lo anterior.
Además, exponer los métodos de las entidades directamente al controlador, podría hacer que los controladores tengan que reescribirse, junto con las clases de entidad, si hay un cambio, por ejemplo, en cuanto a qué ORM (asignación relacional de objetos) sistema está siendo utilizado.La capa intermedia que sugiero también es un buen lugar para el manejo de excepciones, el registro y cualquier otra administración que necesite.
La capa de métodos sugerida en un nivel superior de abstracción a veces se denomina delegado comercial, o una "fachada", pero esto es lo que realmente considero el modelo. Espero que esto no sea demasiado teórico y que sea útil para el OP u otros lectores.
Intente utilizar un marco simple para comenzar. Déjame señalarte en el Codeigniter muy bien documentado: http://codeigniter.com/ – Frankie
me resulta mucho más fácil elegir marcos de mvc cuando entiendes el patrón en sí. – Galen
Estoy usando CodeIgniter, no quiero crear mi propio framework MVC o algo así. Solo quiero algunos consejos al respecto. :) – MarioRicalde