Blog Archives
Ayer 7 de junio, participé en la primera edición de la PHP Barcelona Workshops. Es el primero que se organiza en Barcelona, con talleres prácticos, porque en Febrero ya organizaron una conferencia de PHP, a la cual también asistí.

Esta vez, el lugar que escogieron fue el Citilab de Cornellà. A mi parecer no pudieron elegir mejor sitio, una antigua fábrica rehabilitada que alberga un centro para promover la sociedad de la información, con salas para conferencias, formación y espacios para navegar por Internet.
La jornada empezaba a las 9:30, pero no se tuvo en cuenta el tiempo para las acreditaciones, y hizo que todo se retrasara 30 min.
Por la mañana empezamos con el de Symfony, uno de los frameworks de PHP más conocidos. Y básicamente trataron la instalación, muy básicamente, porque no dio mucho tiempo a avanzar y se quedó todo en mucha teoría.
Al mismo tiempo hicieron la de Motores de Workflow, pero claro sólo podíamos asistir a una de las dos.
La siguiente sesión a la que asistí, después del desayuno que nos ofrecieron, fue la de i18n – Internacionalización de proyectos PHP. Cómo bien indica el título explicaron cómo realizar localizaciones de proyectos web para poder lanzarlos en varios idiomas y también la localizaciones (fechas, monedas,…). Al igual que pasó con Symfony, tampoco pudimos practicar mucho, y eso se convirtió en la tónica de toda la jornada.
Paralelamente a la de i18n, también se realizó una sesión de programación PHP con VIM.
El primer taller de la tarde fue de Ajax, de cómo mejorar páginas web 1.0. Básicamente nombraron varias librerías javascript (Prototype, JQuery, ExtJS, YUI y explicaron algunas características de cada una, pero luego el taller se centró en la librería de Yahoo, la YUI, las explicaciones y los ejemplos que enseñaron de la librería estuvieron muy bien, pero como en las otras faltó tiempo para practicar nosotros.
Y para cerrar la Workshop, una sesión para proteger nuestros proyectos de ataques XSS, nos enseñaron, muy básicamente, como realizar ataques de inyección javascript/html, SQL, o como hacer inclusiones de archivos remotos (Remote File Intrusion).
Como conclusión podemos decir que probablemente más que workshops se podría decir que fueron unas conferencias, porque fue mucha teoría y poca práctica. El temario de esta jornada parecía muy interesante y más si podías practicar allí mismo con tu ordenador, pero al final no fue tanto.
Por último decir que es muy de agradecer que se lleven a cabo iniciativas como esta, y que lo más seguro que las siguientes salgan mucho mejor.
Con la llegada de la nueva versión de Zend Framework, la 1.5, se han añadido nuevos componentes para facilitarnos el desarrollo de aplicaciones php con dicho framework.
Una de las características más importantes que incorpora es la que nos permite desarrollar la aplicación diseñando con el patrón Two-Step-View o lo que es lo mismo diseñando la aplicación con Layouts.
Antes de empezar a picar código debemos pensar un poco en la estructura de directorios para nuestro proyecto, cómo organizar los archivos php, javascript, css, templates,… porque, si lo vamos haciendo sobre la marcha, nos pasará puede pasar que acabemos creando archivos donde no toca o directorios con archivos php que no tienen nada que ver entre sí y esto nos dará muchos problemas a la hora de llevar a cabo el mantenimiento de la aplicación.
En el manual de Zend Framework nos enseñan dos maneras de organizar los directorios, una estructura básica y la otra estructurada en modulos. Pero estás dos soluciones se quedan un poco cortas a medida que la aplicación va creciendo, y después no sabemos donde crear los helpers para controllers, archivos temporales de la caché.
En esta entrada quería enseñar una forma un poco más completa (que no tiene que ser la mejor) de estructurar un proyecto web basado en este Zend Framework.
Los directorios están pensados para la utilización de los componentes que nos aporta Zend Framework (caché, Lucene, locales,…) y también para guardar otros archivos que no están directamente relacionados con Zend pero sí con nuestro proyecto, como son los scripts SQL, scripts de línea de comandos CLI, PHPUnit, documentación.
zfApp/
app/
config/
controllers/
layouts/
models/
views/
filters/
helpers/
scripts/
data/
cache/
indexes/
locales/
logs/
sessions/
uploads/
docs/
html/
css/
images/
js/
.htaccess
index.php
lib/
zfApp/
Zend/
scripts/
tests/
tmp/
Una vez enseñada la estructura voy a dar una pequeña explicación de algunos directorios y archivos:
- zfApp: Nombre de la aplicación
- app: Directorio de la aplicación donde irá la estructura MVC (Modelo Vista Controlador).
- config: Configuraciones Globals.php, config.ini.
- controllers: Controladores de MVC.
- layouts: Templates para las vistas si utilizamos el componente Zend_Layout.
- models: Modelos de los objetos.
- views: Páginas HTML que se generarán a partir de los controladores.
- data: Archivos de datos, organizados por carpetas según el tipo de datos a guardar.
- cache: Donde se guardarán los archivos de caché.
- indexes: Archivos de índices del buscador.
- locales: Archivos de internacionalización de la aplicación.
- logs: Directorio para se guardarán los archivos de log.
- sessions: Directorio donde guardar las sesiones.
- uploads: Directorio donde se podrán subirán archivos.
- docs: Documentación de la aplicación con phpDoc, pdf.
- html: Directorio público.
- css: Archivos de estilos.
- images: Imágenes.
- js: Archivos javascript.
- .htaccess: Archivo de Apache para la configuración módulo mod-rewrite.
- index.php: Archivo bootstrap, archivo PHP de entrada a nuestra aplicación.
- lib: Librerías Zend y propias.
- zfApp: Clases y funciones desarrolladas por nosotros, helpers de controllers,… (mismo nombre que la aplicación).
- Zend: Librería Zend Framework.
- scripts: Scripts CLI, generar indices Lucene, limpias cachés, SQL.
- tests: Archivos de test de la aplicación (PHPUnit).
- tmp: Archivos temporales.
Esta es mi propuesta de cómo se puede organizar un proyecto con Zend Framework.

El sábado 23 de febrero de 2008 tuvo lugar en el Espai Jove Bocanord la primera PHPBarcelona Conference.
Las presentaciones fueron todo un éxito tanto a nivel organizativo como en el contenido, ya que se trataron temas muy interesantes para los desarrolladores.
Aquí tenéis las presentaciones que se llevaron a cabo:
Agradecer a los patrocinadores (SmallSquid y LocalBilling) del certamen por el desayuno y los premios del concurso (aunque no me tocara nada
)
Por último agradecer también a los organizadores y animarles para que esta primera PHPBarcelona conference no se que de en sólo una.
A continuación un vídeo-resumen de lo que fue la jornada:
Vía el blog Zend Framework In Action he visto que han presentado una versión previa de Zend Framework 1.5 la cual viene con muchas correcciones y añadidos importantes.
Entre las mejoras, podemos encontrar estos nuevos componentes:
- Zend_Form para la creación de formularios con soporte para elementos Ajax
- Nuevas actions y helpers para facilitar el trabajo con Ajax
- Nuevos adaptadores para la autentificación OpenID, InfoCard, LDAP
- Soporte para las búsquedas complejas con Lucene, patrones y rangos de fechas
- Soporte para formatos de ficheros de Lucene 2.1
- Helpers de vistas parciales, de marcadores y de acción para la composición de vistas avanzadas y renderizado
- Nuevo componente Zend_Layout para automatizar y facilitar el trabajo con capas
- Soporte UTF-8 en documentos PDF
- Nuevos web services de Technorati, SlideShare, y Remember the Milk
También han actualizado la documentación de Zend Framework con los nuevos componentes.
En Bloguzz ya estamos realizando pruebas con esta nueva versión de Zend Framework para así seguir mejorando la plataforma.
Si por alguna razón necesitais instalar una versión más actual de PHP en vuestro servidor CentOS Enterprise Linux 5 aquí os explico donde podeis encontrar los paquetes rpm de php 5.2.x
El repositorio en cuestión es el de Utter Ramblings y en él se pueden encontrar versiones actuales de Apache, Mysql, PHP (con extensiones individuales), subversion,…
La dirección donde se encuentran los RPM’s es: http://www.jasonlitka.com/media/EL5/
Si os interesa añadir el repositorio a YUM
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
Y la key GPG
rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
Fuente: Utter Ramblings
Zend ha lanzado una versión beta de su entorno Zend Studio con el nombre en clave “Neon“, el cuál está basado en el plugin para Eclipse PHP Development Tools (PDT) .
Está versión de Zend Studio, tendría todos los beneficios de PDT, pero añadiendo algunos requerimientos corporativos como Unit Testing y Refactoring, depuración avanzada, mejor integración con Zend Framework.
Lo que no queda muy claro es, si este producto será el sustituto del actual IDE Zend Studio, aunque puede que todo dependa de la acogida que tenga “Neon”.



















