Prontos primeros borradores de: surforce-base, surforce-library y surforce-modules

De a poco va tomando forma los distintos componentes para empezar a trabajar con Zend y reusar todos los módulos que podamos.

surforce-base

Ya tiene un módulo de ejemplo "noticias" que está andando bien. Solo queda resolver el tema del header y footer para que todos los módulos puedan acceder de forma centralizada a los mismos sin tener que repetirlos en cada sección de las vistas de cada módulo (en la nueva estructura cada módulo tiene dentro sus modelos, controladores y vistas, no tienen un lugar común). La solución estaría por un controller genérico que heredarían todos los controllers de los módulos y este estaría en suforce-library.

surforce-library

Se subió la primer versión con una estructura inicial con clases de ejemplo. La idea es que instalando una vez surforce-base, hay que instalar dentro del directorio "library" (igual que si fuera Zend) la librería Zsurforce. El proyecto base ya hace uso de clases de la librería.

surforce-modules

Tiene el mismo módulo de ejemplo de surforce-base ("noticias"), la idea de este repositorio es tomar lo que sirva y luego exportar (no sirve copiar los archivos, ya que irían los .svn y seguirían referenciando a los proyectos originales) en nuestro proyecto particular, para tener algo donde empezar y no de cero (más adelante se buscarán otras opciones). A pesar que el módulo "noticias" es igual en ambos repositorios (surforce-base y surforce-modules), se deja para facilitar las pruebas (también está el módulo "default").

Las urls que responden son:

http://localhost/surforce-base/ -> módulo "default"
http://localhost/surforce-base/noticias -> módulo "noticias"

Dentro de poco estoy agregando módulos como: usuarios, contactos, faqs, menú, etc.

Nota: "noticias" hace uso de conexión a la base de datos, en el directorio "sql" está su estructura y en application está config_sys.ini para cambiar los parámetros de conexión (config_app.ini solo es para cambiar particularidades de la aplicación, como títulos, etc).

Bueno, en las próximas horas más novedades. ;-)

¡Primera versión de surforce-base disponible!

La idea de este proyecto es poder contar con una estructura base para construir proyectos usando el framework Zend. De la mano vienen detrás dos proyectos más que son surforce-modules y surforce-library, buscando centralizar todo lo posible e incrementar el reuso de código.

Esta es la primera versión de surforce-base, todavía tiene algunos detalles que iré mejorando en los próximos días, pero es completamente funcional ;-)

Contempla todo lo que vengo hablando hace bastante tiempo en los foros de los proyectos: poder tener módulos independientes que contengan dentro de su estructura todos sus elementos, es decir, sus controladores, modelos y vistas (todo se origina a partir del patrón de diseño MVC).

Me basé en la estructura que arma ZendStudio a partir de su wizard, le ajusté algunos detalles y le agregué el soporte para leer el config.ini y un modelo para poder a su vez conectarse a la base de datos (la estructura de datos es la misma de surforce-cms).

Para instalarlo solo hay que bajarse del svn los fuentes de surforce-base y luego en el directorio library bajar tambien de su svn el framework Zend (solo copiar la carpeta Zend que está en el directorio library del repositorio del framework).

Actualmente si lo probamos, funciona de la siguiente forma:

http://localhost/surforce-base

Responde el controller por defecto que se encuentra en:

application/default

Si ejecutamos un módulo, como noticias:

http://localhost/surforce-base/noticias/

Y esto sigue los siguientes pasos:
  1. usa el controller por defecto del módulo noticias

    /application/noticias/controllers/IndexController.php

  2. pasa a la vista (según el action por defecto)

    /application/noticias/views/scripts/index/index.phtml

  3. como requiere datos, se los pide al modelo

    /application/noticias/models/Noticias.php
Nota: el subdirectorio index de la estructura para la vista corresponde al nombre del controller, no del action, el action es representado por el archivo index.phtml (todo es un tema de convenciones de nombres).

Creo que a partir de ahora se puede estructurar en un repositorio centralizado todos los módulos que puedan ser reusados (noticias, usuarios, etc), y a partir de una estructura base ordenada poder empezar a desarrollar cualquier proyecto.

Los fuentes listos para bajarlos y usarlos

http://code.google.com/p/surforce-base/

También puedes suscribirte al foro para darme una mano.

Si me da el tiempo, ya empiezo a subir módulos básicos en el otro proyecto que se complementa con el anterior:

http://code.google.com/p/surforce-modules/

Y en cascada vendrá luego una librería

http://code.google.com/p/surforce-library/


Documentación
http://framework.zend.com/manual/en/zend.controller.modular.html

Bien, a desarrollar con Zend se ha dicho ;-)

Mejoras en Google Code: navegar el código fuente del repositorio SVN

Esas cosas mágicas que tiene Google ;-), entro a uno de los proyectos libres en los cuales estoy trabajado y veo que no encuentro el link que me permitía navegar el código fuente desde el propio navegador.


Primero pienso que se debe a que el repositorio está vacío, pero luego de hacer unas pruebas me sorprendo con que el menú de la sección "source" tiene ahora tres sub-pestañas: Checkout, Browse y Changes.


Al entrar a Browse veo que tiene un arbol para navegar los directorios y luego de seleccionar un fuente lo muestra "coloreado". De la misma forma al entrar a Changes la visualización de cambios está también muy pulida.

También encuentro que ahora puedo navegar por el código elegantemente coloreado (se ve que lo hace un javascripts, ya que primero presenta el código y luego le da color).


Una ventana informativa donde notifica los últimos cambios y los comentarios que se hacen sobre los mismos.

Y la posibilidad de ver en línea las diferencias entre revisiones está muy bien (tiene unos detalles la opción "diff" que hace que quede muy ancha la pantalla).

Así da gusto recibir actualizaciones ;-)

Luego de mi visita relacionada con PHP y Argentina

Hacía muchos años que no iba a Argentina de visita, la última vez fue hace casi 8 años y estuve viajando en avión visitando algunos países de latinoamérica, principalmente por trabajo (me bajaba del avión, tomaba un taxi, iba hasta la empresa / evento, luego al hotel, y a los días de retorno a casa).

En esta visita sumamos el placer con el trabajo y no quise perder la oportunidad de hablar personalmente con colegas que solo nos conocíamos a través del blog, de este blog, bajo los mismos temas: PHP, Surforce, proyectos libres, desarrollo, web 2.0, etc.

Tuve el placer, a pesar del poco tiempo, de conocer y charlar un buen rato con personas muy agradables:
  • Fui a visitar la empresa Moviclips, donde trabaja Pablo Morales (quién está ahora en sus tiempos libres como desarrollador responsable de surforce-social) y posteriormente tuve una entrevista con su jefe, Diego Helmann. Ambos me parecieron muy buenas personas y tuvimos unas charlas muy entretenidas.
  • Me junté con el gurú argentino de PHP el señor Pablo Rigazzi. Qué puedo decir de él, todo un personaje, tanto a la distancia como en persona ;-). Me alegro que ahora me diga que va a dejar de hacer frameworks y empieza a dedicarse de lleno a usar Zend en sus proyectos comerciales (por fin deja de inventar ruedas una y otra vez ;-)).
  • También me junté con Dario Ocles, otro colega y colaborador en sus tiempos libres de los proyectos de Surforce. Darío está trabajando en fnbox.com, empresa argentina que tienen entre sus proyectos a sonico.com, un sitio de red social. Lamentablemente y a pesar que moví un día mi retorno a Uruguay no pude concretar una entrevista con ellos para conocerlos personalmente (si me hubiera podido quedar otro día tal vez iba por mi cuenta sin avisar ;-)).
Llegamos el viernes de noche a Argentina y retornamos el jueves de noche a Uruguay, pero a pesar que me quedaron algunas charlas pendientes (como hablar con un contacto en ORT Argentina para saber de primera mano el tema de la capacitación en nuestra área), creo que a pesar de todo saqué mucho provecho del viaje, ya que además salimos con mi familia de shopping, viajamos un par de veces en subte, en auto, estuvimos en los lagos de Palermo, etcétera, etcétera.

No pude sacar muchas fotos, menos de nuestras charlas, pero para la próxima espero poder juntarnos de nuevo y poder hablar con más desarrolladores o empresas que estén vinculadas al desarrollo de sistemas web y en particular con PHP, para intercambiar puntos de vistas, proyectos y tendencias.

Plugin: TortoiseSVN dentro de Eclipse

A pesar que Eclipse soporta a través de módulos servicios como SVN, muchas veces usando subeclipse, este puede no funcionar correctamente (me pasa generalmente con el primer checkout) o vernos limitados en las funcionalidades que traen otras herramientas.


Si estás en el ambiente Windows, uno de los clientes más completos es TortoiseSVN, que se integra al explorador y ofrece muchas opciones de consultas para revisar los cambios de los fuentes (como el famoso "blame" que permite saber exactamente qué línea tocó cada uno de los desarrolladores sobre un mismo fuente).


Si estando dentro de Eclipse extrañas las funcionalidades de TortoiseSVN, puedes usar este plugin para tener todo integrado en la misma herramienta.

PD: gracias Fabian Bueno por tu aporte ;-)

Nos vamos de paseo a Argentina

Me voy con mi familia y de paso voy a visitar a colegas que están relacionados con el mundo PHP, como Pablo Morales (Moviclips, surforce-social) y el gurú Pablo Rigazzi (ZonaPHP, forosdelweb, etc).

Más detalles en el blog personal ;-)

Entradas populares