Disponible PHP 5.5.9

El grupo de desarrolladores de PHP han anunciado la liberación de la versión 5.5.9, que corrige algunos bugs detectados en la versión 5.5.8 (lista de cambios), se recomienda a todos los usuarios que estén utilizando la versión 5.5 actualizar a la nueva versión.

También está disponible la versión 5.6.0alpha2, donde se incluyen nuevas características y se corrigen errores. A todos los que estén interesados en probar esta nueva versión se les recuerda que es una versión en desarrollo y no se debe usar en producción.

Evolución del uso de los lenguajes de programación

grafico-lenguajes-programacion-rankingA través de Vaya Astracanada, me entero de que la comunidad de programadores de TIOBE ha publicado la actualización de su ranking de uso de los lenguajes de programación, y su evolución en los últimos años. A la cabeza se mantiene Java (20,4%), seguido bastante de cerca por C (17,3%). Por detrás y a bastante distancia se encuentran en rangos similares C++ (10,4%), PHP (9,3%) y Visual Basic (7,8%). En el gráfico podemos apreciar un fuerte descenso de C++ a partir de 2005 y un estancamiento en la evolución ascendente que mantenía PHP hasta 2006.

Llamativa es la caida de Perl, que ahora mismo sitúa su popularidad por debajo de lenguajes como Python y C#, y con Javascript pisandole los talones.

Los valores Booleanos en PHP

La lógina Booleana es muy importante para las estructuras de flujo de control. Estos valores son utilizados para definir que conjunto de instruciones van a ser procesadas en función de la condición que se determine, en otras palabras ante una encrucijada que decisión se toma.

Dentro de la lógica Booleana, dos valores toman especial relevancia TRUE y FASLSE (verdadero y falso). En PHP no es necesario convertir a estos valores determinados resultados para obtener el mismo efecto. Los siguientes valores serán tomados como el FALSE Booleano:

  • [ 0 ] El entero cero.
  • [ 0.0 ] El número flotante cero punto cero.
  • [ » » ] Las cadenas vacias.
  • [ «0» ] La cadena cero.
  • [ array() ] Un array vacio.
  • [ object{} ] Un objeto vacío.
  • [ NULL ] El tipo especial null, incluyendo todas las variables no establecidas.

Todos los demás valores serán considerados TRUE. Hay que tener en cuenta que la evaluación de una expresión como TRUE o FALSE dependerá del resultado y no de los valores que se comparan. Por ejemplo si establecemos $a = 3 y $b = 7, ambas variables serán evaluadas como TRUE. Pero si preguntamos si $a es mayor que $b el resultado será FALSE.

También hay que tener en cuenta que cuando asignamos un valor Booleano a una variable (por ejemplo: $var = false) y la mostramos por pantalla veremos un valor numérico (en el ejemplo echo $var mostrará 0).

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.

Todo controlado con xDebug

xdebug-logoHay algo que considero fundamental para todo programador: un depurador. Si desarrollas con PHP debes conocer xDebug, este depurador te permitirá hacer un control exhaustivo de los errores que se produzcan en nuestra aplicación.

Tienes toda la información relativa a la descarga e instalación en la página oficial de xDebug. Una vez instalado recuerda indicarle a PHP, en el php.ini, la ruta donde se encuentra el paquete. También debes tener habilitado PHP para mostrar errores mediante la directiva display_errors.

Algunas funciones útiles:

xdebug_memory_usage( ): Devuelve la cantidad de memoria usada por nuestro script. Antes de PHP 5.2.1, esta función sólo funcinará si PHP fue complilado con –enable-memory-limit.

xdebug_time_index(): Devuelve el tiempo en segundos que ha tardado en ejecutarse el script.

xdebug_peak_memory_usage(): Devuelve el pico máximo de memoria usuado por el script.

Otra de las características más salientables de xDebug es la integración con IDE’s, entre ellos Eclipse y Netbeans, lo que permite la depuración de las aplicaciones sin salir del entorno de trabajo.

La instalación de xDebug debe estar reservada únicamente al servidor de desarrollo, puesto que la cantidad de información que muestra xDebug puede ser utilizada por un atacante para encontrar puntos de ataque.

Nueva versión estable PHP 5.2.8

php_snowEl pasado 4 de diciembre veían la luz dos nuevas versiones de PHP, por un lado la versión estable 5.2.7 y por el otro la relase candidate 5.3.0alpha3. Y tres días más tarde se anunciaba el fallo de seguridad en la 5.2.7 que provocaba que aunque magic-quotes-gpc estuviese activado se mantubiese como desactivado.

La recomendación era regresar a la versión 5.2.6, a la espera de que fuese lanzado PHP 5.2.8, pues bién tan solo un día más tarde ya estaba disponible 5.2.8 con el fallo corregido. A aquellos que instalasen 5.2.7 se recomienda actualizar a 5.2.8 para evitar cualquier problema de seguridad en ese sentido.

En cuanto a la RC PHP 5.3.0alpha3 trae consigo muchas novedades, entre ellas los namespaces, el cambio de compilador de gcc a cc, o un redondeo más preciso al trabajar con decimales.

Soporte para Symfony en Netbeans 7.0

Ya es oficial, Netbeans 7.0 contará con soporte para Symfony, después de que la votación recibiese 469 votos a favor del soporte de este framework de PHP en la próxima versión de Netbeans.

Una gran decisión por parte de Netbeans incluir soporte para uno de los mejores frameworks de PHP he probado hasta la fecha. Y espero que siga mejorando, para finales de este año se espera que esté lista la versión 1.2 de Symfony, de momento ya esta disponible la beta 2 para probar sus nuevas funcionalidades.

Aunque personalmente prefiero usar Eclipse con PDT como IDE para el desarrollo en PHP (tengo que recordar probar este plugin para Simfony), es una gran noticia que Netbeans tenga soporte Symfony, esto ayudará a que más gente se anime a usar el framework.