ZF - Empezando el desarrollo.
Bueno, después de leer y leer y leer y leer un poco más… Creo que ya más o menos me entero del funcionamiento del Zend Framework. El mayor problema de este framework es su gran potencia, versatibilidad y modulabilidad., que me lian un poco, claro está que a la par que me lian dan un potencial de desarrollo y de rehutilización de código bestial!
Quieres empezar con él, o saber más de él.
Bueno, tenía intención de contar un poco de ZF, pero
- No tengo conocimientos suficientes para hacer algo que realmente valga la pena.
- Hay bastante buena información al respecto en español[1]. Aunque, eso si, más allá de contarte que es ZF poca información buena encontrarás en la lengua de cervantes, todo en un perfecto ingles!
Así que directamente pasaré a la parte b), crear el primer site:
PROYECTO01 - AFM
PLANIFICACION
El site en principio va a ser casi_estático, ya que supongo que una vez lo entrege prácticamente no se usará ;-). Aun así, quiero desarrollar algo que sea bastante modular y fácil de ampliar. La idea principal es un site donde las subsecciones sean ampliables y la información de esta editable.
La idea es crear el tipico frontal con secciones y subsecciones (solo dos niveles, ya que no creo que “el cliente” vaya a necesitar más). La forma más fácil de desarrollarlo será crear una lista de secciones y una lista de subsecciones. Y para optimizarlo, las secciones no contendrán información, sino que serán las subsecciones las encargadas de contener toda la información. Tendremos la opción de marcar una subseccion como “default”, siendo la marcada la que se muestre por defecto en su respectiva seccion.
A priori necesitaría una lógica de navegación, una administración de usuarios y roles, y una base de datos que respalde toda la información.
La lógica de navegación es simple:
- El portal inicial tendrá un listado de secciones
- Al entrar en cada sección se motrará la subseccion activa.
- En caso de que haya más de una subsección se desplegará el listado de subsecciones en el navegador.
Nada especialmente difícil. Como ya he dicho en principio no se necesitarían más subniveles en la aplicación, facilitando bastante el desarrollo al no tener que hacer esto de forma dinámica.
Los roles definen el alcance de cada usuario. Al poder, los usuarios, introducir la información en la aplicación, esta deberá contar con una sería de roles. En principio solo usaré tres roles básicos:
- guest/default: El rol por defecto del visitante. Podrá navegar por el site, pero nunca podrá editar la información.
- writer: Solo podrá hacer modificaciones en las secciones ya creadas, vamos un editor.
- admin: Podrá crear nuevas secciones, además de escribir en ellas.
Una duda que tengo es el alta de usuarios nuevos. En caso de poder hacerse, solo sería admin quien podría ya que es una aplicación privada. Pero no se hasta que punto será útil crearlo, teniendo en cuenta el poco uso que se le dará al alta/baja de usuarios. Dependerá sobretodo de la (mi) facilidad de desarrollo con ZF
Lógicamente la parte de administración tendrá su própia lógica de navegación:
- Logeo
- Modificación de la información de las subsecciones (recordamos que las secciones, por si mismas, no contendrán la información).
- Gestión (añadir, borrar) de Secciones y subsecciones.
- Gestión (añadir, borrar) de usuarios.
- Deslogeo
Como el portal es bastante pequeño y simple, toda la estructura de la base de datos es bastante sencilla. Contendrá la información relativa a la navegación y la relativa a la administración de usarios y roles.
Para la navegación se crearán dos tablas:
- afm_section: Que tan solo contendrá el nombre de la sección, “section_name” y el id correspondiente “section_id”
- afm_subsection: Esta tabla contendrá toda la chicha del portal y tan solo contará con 6 campos.
“subsection_id”, “subsection_name”, “subsection_content”, “subsection_hasDefault”, “subsection_section_id” y “subsection_modify” que contendrá el user y la fecha de la última modificación.
Y la parte de lógin tendrá sus dos tablas correspondientes:
- afm_roles: Que contendrá la información relativa a los roles de acceso (luego veremos mejor como juntar esto con Zend_ACL. Contendrá tres campos “roles_id”, “roles_name”, “roles_roles_id”. En “roles_roles_id” indicaremos los roles que puede contener el rol indicado. Por ejemplo todo “Admin” será “Guest” y “Writer”.
- afm_users: Los usuarios no necesitarán excesiva información; “user_id”, “user_name”, “user_realname”, “user_password”, “user_mail”, “user_roles_id”.
Y con esto y un bizcocho, el planteamiento base ya está realizado! Está claro que hay más cosas en mente. Como el posible diseño, opciones especiales de navegación, posibles extensiones y demás. Pero creo que por ahora, ni es necesario explicarlo todo detalladamente, ni me interesa, ni sabría como escribirlo. A parte de que al hacerlo así, siempre podré extenderlo en mayor o menor media.
PRIMER PASO: CODE.GOOGLE
Ahora que ya tenemos el planteamiento, vamos a crear un nuevo proyecto en code.google. Esta nueva implementación de google la conocí hace relativamente poco (gracias a que es ahí donde se aloja Surfoce-CMS). Poco a poco iré explotando más estas nuevas opciones de google, pero por ahora simplemente lo uso para guardar mi repositorio del proyecto. Que pena que mi hosting no acepte SVN.
La url del repositorio es: http://code.google.com/p/g05l21-project01/
Por ahora no es que le haya metido mucha información o texto, pero vamos, ni siquiera lo he hecho aquí en el blog…
Ya iré ampliando la información allí y poniendo más cositas por aquí!
[1]: Y un claro ejemplo está en ZF: Estado del arte. En Abril del 2008 sacó una buena colección de post relativos a ZF.






11 Julio 2008 12:01 pm
[...] Como se puede ver el screenshot está sacado del EasyEclipse5, Y está basado en el desarrollo del Proyecto01 del que ya hablamos. [...]