Ver Mensaje Individual
  #37 (permalink)  
Antiguo 09/08/2007, 13:09
Tukzone
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 11 meses
Puntos: 11
Re: Nueva framework PHP5, que opinan?

Pablo! Que bueno leerte nuevamente!! Uff, fuiste uno de los pocos que entendió el motivo por el cual publique esa documentación y me alegra que la hayas leido. (sabes muy bien que escribir en ingles en un dolor de bolas).

Creo que hiciste un análisis excelente y es el tipo de opiniones que necesito, porque cuando uno se embala con estas cosas, mete la cabeza en un pozo y cuando la saca ya es de noche.

El Router, este es un tema delicado. Quiero hacer algo innovador, pero estoy comenzando a creer que no hay muchas opciones.

Esto es lo que tengo hasta ahora:

Cita:
http://www.ejemplo.com/<modulo>/<accion>
Que obviamente el Router busca el controlador y la accion en: modules/<modulo>/

Cita:
http://www.ejemplo.com/<modulo_padre>/<modulo_hijo>/<accion>
Busca en /modules/<modulo> donde <modulo> es igual a <modulo_hijo>

Modulo hijo hereda la configuración del padre. Por ejemplo, si el modulo padre esta configurado para autentificar al usuario, todos los módulos hijos van a necesitar autentificar al usuario.

Cita:
http://www.ejemplo.com/<modulo_padre>/<modulo_hijo>/<modulo_hijo>/<accion>
Siempre el ultimo modulo hijo hereda la configuración del padre, o sea, el modulo que queremos acceder.

Si vamos a http://www.ejemplo.com/admin accedemos al panel de control, donde vemos en forma de arbol la estructura del sitio:

Código:
+ home (modulo: home)
+ quienes-somos (modulo: nosotros)
       - representantes (modulo: nosotros)
       - vendedores (modulo: staff)
+ productos (modulo: productos)
      - software (modulo: productos)
      - hardware (modulo: productos)
Ahora, un par de ejmplos para que se entienda mejor.

Ejemplo 1:

Si el usuario solicita: http://www.ejemplo.com/quienes-somos/vendedores

El Router carga el modulo padre <nosotros>, lee la configuración, se la pasa al modulo <staff> y carga el modulo <staff>.

Ejemplo 2:

Si el usuario solicita: http://www.ejemplo.com/quienes-somos/representantes

El Router carga el modulo padre <nosotros>, lee la configuración, se da cuenta que tiene que cargar nuevamente el modulo <nosotros>, lo cual no hace porque ya creo una instancia de ese objeto.

--

Ahora, lo interesante es que dentro del controlador de un modulo, puedo cargar otros módulos. La configuración de los módulos que cargo no se cargan, pasan todos a depender de la configuración del modulo que los cargo.

Cita:
Lo que vi y que no me gustó para nada, es que en el ejemplo que pusiste, tenés un public function index() que si mal no entiendo, es llamado ante cada request,
Sip, creo que esto lo voy a tener que cambiar. O sea, realmente no me puse a pensar mucho en como hacer esto y las ventajas o desventajas de como lo hice. Pero creo que seria mas interesante mapearlos automáticamente no?

La razon por la cual lo hice asi, es para facilitar la tarea del 2do programador que tiene que trabajar en un modulo ya creado. O sea, viendo el metodo index(), puede saber que hace el modulo. O sea, seria como el índice de un libro. La pregunta es, que se pierde y que se gana haciéndolo asi?

Pablo, definitivamente necesito un arquitecto. Si aceptas ver un poco mas de cerca esta framework, te hago un espacio en el servidor. Si necesitas alguna herramienta de UML, editor de PHP o lo que sea, me encargo de que te llegue.

Gracias por tomarte la molestia y el tiempo!!

Última edición por Tukzone; 09/08/2007 a las 14:06