Tiendo a dividir los controladores según su responsabilidad en una sección específica de un sitio/aplicación. Esto hace que mantener el código sea mucho más fácil. Además, agrupo controladores (y vistas, modelos) dentro de módulos (carpetas). He aquí un ejemplo de un proyecto en el que estoy trabajando en:
- Blog
- Mensajes
- Comentarios
- Categorías
- Ajustes
Cuanto más complejo es un sitio, más módulos uso. Aunque la mayoría de mis módulos solo contienen un controlador 'Index', me gusta la organización que ofrecen.
Luego uso un enrutador (controlador frontal) que asigna un URI de estilo REST al módulo/controlador/acción adecuado. Por ejemplo: mysite.com/blog/posts/view/7 llamaría Controller_Posts :: view (7) desde el módulo "blog". Un beneficio adicional de usar módulos es que puedo tener URI más específicos que si no tuviera módulos. Aunque supongo que podría remediarse usando un enrutador que permita definir rutas personalizadas, pero no me gusta demasiado.
Como muchas otras cosas, se reduce a lo que te hace sentir cómodo como desarrollador, pero probablemente podamos estar de acuerdo en que cuanto más organización tengas, mejor te sentirás, siempre y cuando no compliques demasiado las cosas .
Como un aparte rápido, le recomendaría que estudie el uso de un marco. Entiendo que no quieras utilizar uno de los que ya existen, ya que también los evité. Terminé escribiendo el mío que durante el año pasado me ha servido muy bien. Fue una gran experiencia de aprendizaje y solo contiene lo que I desea/necesita. Una vez dicho esto, es posible que desee examinar Kohana y CakePHP: no están excesivamente hinchados de la OMI y definitivamente le ahorrarán tiempo si decide no escribir el suyo.
¿Por qué quieres evitar un marco? Mientras que algunos son restrictivos (hágalo * esta * manera, o tendrá que hackearlo hasta la muerte), hay algunos que son bastante flexibles (seleccione y elija lo que desee). –
bueno, principalmente quiero evitarlo porque tengo la libertad y el tiempo para implementar el mío, y realmente me gustaría tener una experiencia sólida con uno antes de empezar a usar un framework. también ... no quiero más de lo que necesito, en general – johnnietheblack