Comparativa ATK Framework – zenphp framework

atk_vs_zenphp

Acabo de leer un artículo de Ivo Jansch, un profesional de Oracle diciendo que empresas de todos los tamaños tienen la necesidad de portar las aplicaciones de escritorio que usan bases de datos Oracle a aplicaciones web ,según nos dice, por la gran facilidad, usan un framework: ATK Framework.

El tesoro de este framework es la gran facilidad para crear administradores con sólo varias líneas de código, y es algo que me ha gustado bastante, podéis comprobarlo en su web.

Es justo la parte débil de zenphp.

Sin embargo, echando un vistazo al código vemos que realmente sí que son más líneas, porque se van definiendo los menús y sus accesos, se usan nodos de tipo atkNode, y como suele pasar con los frameworks gigantescos, tenemos que empezar a conocer la extensa terminología única de ATK:

—-
/**
* This node is new. It is used to edit profiles. A profile is a set of user
* privileges. In this scenario, each user has one profile (many-to-one
* relation).
*/
useattrib(“atkdummyattribute”);

/**
* The profileattribute can be used to edit the privileges.
*/
useattrib(“atkprofileattribute”);
—-

etc.

Son todas estas distracciones las que he intentado eliminar, por eso zenphp no tiene instalación, al copiarse ya se puede utilizar.

Y hacedme caso, no necesitáis escribir un framework completo para escribir una buena herramienta de administración, sobre todo tan reducida como la de ATK. Si queréis ver algunos ejemplos, mirad en http://programadorphp.org

Prioridad lineal de los procesos de una aplicación web

Cuando estamos manteniendo una aplicación web suele ocurrir que el usuario final nos pide cambios que rompen el esquema inicial de la misma, es decir, se quieren saltar todas las reglas del diseño en el que nos habíamos “partido los cuernos” de forma que fuera todo fácilmente mantenible y estable asi como escalable.

En estos momentos tenemos dos opciones: cabrearnos mucho y quejarnos con el usuario para que lo haga a “nuestra manera o carretera”, o bien, mucho mejor, que la prioridad forme parte de todo este asunto.

Es ahora cuando decidimos que la segunda opción favorece nuestro trabajo de forma que podemos ir todavía más un paso adelante, es decir, si después de realizar todas las tareas necesarias para generar una página de una aplicación el contenido generado requiere un cambio de última hora, podemos utilizar una prioridad para construir/destruir dicho contenido. Un ejemplo es utilizar CSS, la prioridad se establece con la opción “!important” ,entonces, si en el HTML de nuestro primer diseño de la web tenemos un listado de hoteles y necesitamos que en uno de los hoteles del listado se muestre una división de forma distinta, simplemente vamos a permitir que en el editor HTML WYSYWYG se puedan introducir etiquetas de estilo: <style> [ extended_valid_elements: “style” en tinymce ]y ahora vamos a reescribir la regla donde se necesita que se muestre de otra forma el contenido, en lugar de cambiar toda la lógica de la programación, entonces ,usando “!important” al lado de las reglas, por ejemplo para el ancho :

<style> #midivision { width: 350px !important;} </style>

de esa forma le damos prioridad a esta regla, lo mismo se puede hacer con javascript y el argumento “defer” de la etiqueta <script>, y lo mismo se puede utilizar en PHP si especificamos el orden de carga de las clases, etc etc.