Frameworks PHP: Zend vs Symfony

Cuando uno se plantea por primera vez el uso de un framework en PHP comienza a darle vueltas a las posibilidades que ofrecen unos y otros. Aunque la curva de aprendizaje en el uso de un framework es dura, todo el tiempo que le dediquemos a conocer a fondo aquel por el que nos decidamos será el tiempo mejor invertido en formarnos como desarrolladores.

En este caso quiero plantear una comparación entre dos de los frameworks más extendidos Zend y Symfony.

Documentación y aprendizaje. Com he dicho la curva de aprendizaje para poder usar correctamente y con soltura un framework necesita de un esfuerzo, mucho más si llevamos años programando sin usarlo. Symfony dispone de guias y manuales en abundancia, y además cuenta con numerosos foros en varios idiomas donde la comundad va resolviendo dudas. En el caso de Zend, a pesar de ser el framework de la empresa que está detrás de PHP, la comunidad es algo escasa, por tanto su documentación también.

Pruebas unitarias. Symfony dispone de tareas por linea de comandos para realizar testing, y además genera una clase vacia con cada nuevo controdalor desde el que poder realizar las pruebas. Zend no dispone de esta funcionalidad, algo que me parece muy importante a la hora de lanzar una aplicación a un entorno de producción.

Plantillas y plugins. Al sistema de plantillas de Zend le queda todavía un largo camino que recorer, mientras que en Symfony el sistema está ya muy avanzado, con la posibilidad de agragar módulos. Y otro tanto ocurre con los plugins, en Symfony es posible aumentar sus funcionalidades a base de plugins, mientras que Zend carece de esta característica.

Bases de datos. El trabajo con base de datos en Zend se limita a usar ActiveRecord (que no digo que esté mal), pero en Symfony tienes la posibilidad de usar el motor de base de datos que quieras, incluyendo el propio Zend_Db, algo que aporta una enorme flexibilidad al desarrollador que puede elegir en cada proyecto cual es la mejor opción.

Como conclusión a lo dicho quiero añadir, para todos aquellos que quieran dar el salto a hacer desarrollos basados en un framework, que a pesar de que al principio pueda resultar un poco engorroso con el tiempo os ayudará a mantener una limpieza de código y un mantenimiento de aplicaciones mucho más sencillo.

Utilidad y uso de EXPLAIN en MySQL

logo_mysql

A la hora de realizar una buena optimización de las consultas de MySQL habrá que prestar mucha atención a lo que dice la cláusula EXPLAIN. Su sintaxis es muy sencilla, basta anteponerlo a la consulta que queremos realizar para obtener toda la información.

EXPLAIN SELECT columna1, columna2 FROM tabla1 WHERE columna3 = ‘2’\G

El resultado que obtendremos será el plan de ejecución de la consulta a la base de datos. Una explicación de como accederá MySQL a las diferentes columnas involucradas en la consulta. EXPLAIN devolverá:

  • id: Es el identificador que EXPLAIN asignará a la consulta.
  • select_type: Tipo de consulta a analizar. Por ejemplo, si se trata de una consulta sencilla su valor será SIMPLE.
  • table: Nombre de la tabla a la que hacen referencia el resto de datos en la fila. Hay que tener en cuenta que el orden de las filas será el que utilizará MySQL para acceder a los datos.
  • type: Indica como MySQL combinará los datos de esa tabla.
  • possible_keys: Lista de los indices que se podrían utilizar, aunque podría no usarse ninguno.
  • key: Índice que finalmente se usará, si no se usa ninguno el valor del campo será NULL.
  • key_len: Tamaño del indice utilizado, si no se usó ninguno contendrá NULL.
  • ref: Muestra con que campo está relacionado el índice seleccionado.
  • rows: Número de registros que se tendrán que recuperar para ejecutar la consulta.
  • extra: Información adicional sobre la forma en que se obtendrán los datos.

Con esta información es posible encontrar donde se producen los cuellos de botella en las consultas que realizamos a la base de datos, y nos permitirá optimizarlas para evitar que una consulta lenta provoque un retraso injustificado en la devolución de resultados a los usuarios. En el manual de MySQL puedes encontrar más información.

Decide quien se lleva el premio

Concurso TF1

Hoy domingo, coincidiendo con el Gran Premio de Bahrain 2009, finaliza el plazo para votar por la foto ganadora del concurso Ven al Gran Premio de España 2009 por la cara que hemos organizado en Todo Formula 1.

La foto más votada se llevará una entrada doble con alojamiento y viaje incluido para disfrutar de la Fórmula 1 en directo en el Circuito de Cataluña. El plazo para poder votar finaliza a las 23:00 horas de hoy domingo 6 de abril.

Puedes ver las fotografías y dejar tu voto desde el espacio reservado para las votaciones. Podrás ver todas las fotos, y pinchando encima de cada una la verás ampliada y podrás votar por ella.

Gana una entrada doble para el GP España F1 2009

En Todo Formula 1, en colaboración con el Circuito de Cataluña, estamos sorteando una entrada doble con alojamientos y transporte incluido para que puedas disfrutar del Gran Premio de España 2009 en directo.

Para participar en el concurso tan sólo tienes que teminar la con rima la frase «Merezco una entrada de formula 1 …», ponerla en una pancarta, sacarte una foto con ella y enviarnosla. Entre las 10 fotografías más votadas elegiremos un ganador para que viaje a Montmeló para disfrutar en directo del GP España 2009.

Si te gusta al Fórmula 1 no pierdas la oportunidad de llevarte el premio y disfrutar del gran ambiente de la Formula 1 en el circuito. El rugir de los motores de los monoplazas es como musica celestial.

Más información

Galite organiza unha xornada de Software Libre en Foz

cartelcursodrupalGalite, o Grupo Asociado pola Libre Información e a Tecnoloxía, organiza o vindeiro 21 de marzo unha xornada sobre software libre no Concello de Foz. O encontro terá lugar na Casa da Xuventude da vila e estará aberta á participación de calquera persoa interesada en iniciarse ou afondar no coñecemento das tecnoloxías e os estándares abertos.

A xornada iniciarase ás 12:00 horas coa presentación do Galinux, o sistema operativo libre e en galego promovido pola Dirección Xeral de Promoción Industrial e da Sociedade da Información e enmarcada no Plano Estratéxico Galego da Sociedade da Información (PEGSI 2007-2010).

A continuación impartirase un obradoiro titulado «Introdución a Drupal», no que se abordará a instalación deste sistema de xestión de contidos (CMS), así como a súa configuración para a creación dunha web particular, empresarial ou unha comunidade online.