desde la lista de correo Seagull
Nuestro colega Demian de phpkitchen.com ha publicado el diagrama de flujo de Seagull, y traducimos:
“Viendo lo que otros sistemas están haciendo, he hecho un diagrama que podría ayudar a los desarrolladores a visualizar el workflow de Seagull desde el punto de vista del controlador de la aplicación. Debes imaginar que el módulo actual sobreescribirá los metodos validate/process/display para implementar una funcionalidad concreta.
De esta manera el sistema se ocupa de las tareas del sistema, y los módulos se encargan de una funcionalidad específica.
No hacemos cosas como Phrame y Mojavi (and struts) en lo relativo a la creación de un objeto para encapsular acciones, principalmente para evitar una sobrecarga innecesaria por utilizar objetos para los objetos. En el eqivalente Seagull, una acción petición de un parámetro es mapeada a $input->action e invoca al método privado principal en el objeto del gestor del módulo.
Otra de las cuestiones, se refiere a las capas de abstracción de la base de datos y el sistema de plantillas. Seagull utiliza PEAR::DB y Flexy pero la implementación de otros componentes no requiere de grandes cambios en el código.”
Efectivamente, como comenta nuestro colega Demian, estos dos últimos puntos no precisan de grandes modificaciones, de hecho, nosotros venimos utilizando Seagull, con ADOdb como capa de comunición con la base de datos, pensamos que es mucho más eficiente que PEAR:DB, de hecho las últimas versiones de ADOdb, ya tienen incorporado el uso de PHP5 y tienen extensiones compiladas escritas directamente en C, lo que hace que ADOdb, sea mucho más rápido que su homólogo de PEAR.
Para el caso de las plantillas no usamos “inFlexy templates” ;-), sino plantillas HTML o XHTML que incluyen fragmentos mínimos de PHP del tipo
=$output->myVar?>
ó para el caso de bucles, myVar AS $key=>$value){?>
=$value?>
}?>, lo que permite una mayor flexibilidad.
De cualquier forma, existe una gran flesibilidad a la hora de implementar cualquier tipo de plantillas en el sistema Seagul.