462 subscripciones por RSS o por E-mail

PHP-PFM incluído en PHP 5.3

Finalmente PHP-FPM (FastCGI Process Manager), la implementación alternativa de FastCGI para PHP, se consideró lo suficientemente estable como para incluirse en el árbol actual de PHP 5.3, a pesar de que en este momento a esa versión sólo pueden agregársele correcciones de errores.

El anuncio dice que el parche está en el directorio sapi/fpm del árbol del código fuente de los más recientes "snaps" de PHP 5.3 para quienes quieran compilarlo a mano. También, por lo menos las distribuciones de GNU/Linux más actualizadas como Gentoo, ya están comenzando a incluirlo en sus paquetes binarios.

Como dijimos antes, parche de PHP-FPM para PHP se encarga de iniciar, detener y reiniciar los procesos de FastCGI según sea necesario, lo que lo hace muy atractivo, por ejemplo, para poder usarlo en sitios de enormes cargas con servidores muy eficientes como Nginx o Lighttpd.


¿PHP-FPM a PHP 5.4?

No será para PHP 5.3.3, pero muy probablemente la próxima versión 5.4 de PHP incluya el parche de PHP-FPM (FastCGI Process Manager), que como su nombre lo sugiere es una implementación alternativa de FastCGI para PHP que además agrega algunas características adicionales útiles para sitios de cualquier tamaño, especialmente aquellos con más tráfico.

El parche de PHP-FPM para el núcleo mismo de PHP se encarga de iniciar, detener y reiniciar los procesos de FastCGI según sea necesario, y por eso mismo sería muy atractivo, por ejemplo, para poder usar PHP con el muy eficiente servidor web Nginx. Esto también traería algunas ventajas sobre la alternativa típica de correr PHP como un módulo de Apache, entre ellas:

  • Menor consumo de memoria.
  • Más fácil administración de permisos.
  • Si PHP se cae, Nginx puede continuar funcionando.

Si el parche es aceptado, activarlo sería tan fácil como compilar PHP con la opción --enable-fpm, lo que haría la vida de los administradores mucho más fácil a la hora de montar PHP sobre cualquier servidor que soporte FastCGI.


PHP6 reseteado

Los desarrolladores de PHP comenzaron a discutir sobre su versión 6 incialmente en el 2005, pero hasta este mismo mes de Marzo del 2010 todavía no hay indicios que de su lanzamiento esté más cerca que antes. Los más optimistas vienen prediciendo que PHP6 está a sólo 18 a 24 meses desde hace tanto como 3 años, pero acontecimientos recientes pueden postergar su muy anticipado lanzamiento hasta el 2011, en el mejor de los casos, o aún más allá, si es que sucede en absoluto, en el peor.

El detonante de la última crisis en PHP6 es, irónicamente, una de sus más esperadas características: el soporte de Unicode, implementado con la librería ICU, que internamente usa UTF-16 para codificarlo todo, lo que significa que cualquier otra codificación usada en los scripts o los datos (generalmente UTF-8) deben convertirse a UTF-16 antes de ser usados. Para los usuarios esto trae además algunas incompatibilidades hacia atrás que requieren que el código se revise manualmente.

Esa implementación de Unicode ha probado ser difícil de completar y poco popular entre los mismos desarrolladores, lo que queda demostrado en el empantanamiento actual de la rama HEAD o trunk del desarrollo de PHP (correspondiente a su versión 6), que tampoco ha visto ninguna actividad importante durante este último verano.

Pero la gota que derramó el vaso fué que un sólo desarrollador, en un arranque de frustración, publicó un gran parche no autorizado en el repositorio de PHP creando además por su propia cuenta la nueva rama 5.4. Tal fué el revuelo que el mismísimo Rasmus Lerdorf tuvo que intervenir decidiéndose finalmente que el nuevo trunk en el repositorio SVN de PHP estará basado en la rama actual de su versión 5.3, donde se fusionarán las características del viejo trunk y junto con las nuevas.

En este momento es muy temprano para decir si la próxima versión de PHP será entonces llamada "5.4", o incluso "6.0". Pero lo seguro es que ahora todos los esfuerzos están puestos en hacer que PHP 5.3 sea la verdadera rama estable de PHP, y aunque aún no hay una fecha para el fin del soporte de la anterior v5.2, se considera que ahora hay un buen motivo más para comenzar a actualizarse a PHP 5.3.


PHP 5.3 no será incluído en Ubuntu 9.10

La versión 9.10 "Karmic Koala" de Ubuntu Linux (actualmente en su Alpha 3), planeada para ser lanzada el próximo 29 de Octubre no incluirá el nuevo PHP 5.3. Así lo decidió un grupo de desarrolladores de Ubuntu en una reunión el mes pasado. El motivo es que el parche Suhosin todavía no ha sido portado a PHP 5.3 y el equipo de seguridad no se siente cómodo liberando una versión de PHP sin ese parche activado por defecto.

En lugar de incluirse en "Karmic Koala", el paquete de PHP 5.3 será enviado un Personal Package Archive (PPA) de Ubuntu hasta que se completen más pruebas por la comunidad.

Suhosin está diseñado para proteger a los servidores y a los usuarios de defectos conocidos y no conocidos en las aplicaciones escritas en PHP y en el mismo núcleo de PHP. Suhosin es compatible a nivel binario con una instalación de PHP normal, lo que significa que es también compatible con terceras extensiones como el Zend Optimizer.


Zend Framework 1.9 soporta PHP 5.3

Zend anunció así el lanzamiento de la versión 1.9 de su framework Open Source para PHP5. Para esta nueva versión, su código fue auditado para ofrecer una compatibilidad total con PHP 5.3, lanzado hace un mes, mientras continúa soportando a todas las versiones posteriores a la 5.2.4.

Algunos de los nuevos componentes de Zend Framework 1.9 incluyen:

  • Zend_Rest_Route, Zend_Rest_Controller y Zend_Controller_Plugin_PutHandler, que ayudan ofrecer recursos REST via la capa MVC.
  • Zend_Queue and Zend_Service_Amazon_Sqs permite usar servicios de mensajería locales o remotos para disminuir la cantidad procesos asincrónicos.
  • Zend_Test_PHPUnit_Db permite tests de integración y funcionales usando "fixtures" en bases de datos con soporte del DBUnit de PHPUnit.
  • Zend_Db_Adapter_Sqlsrv, un adaptador Zend_Db para el *driver* de SQL Server.
  • Zend_Feed_Reader provee una API común para acceder a feeds RSS y Atom.
  • El toolkit Dojo actualizado a su versión 1.3.2

Zend Framework 1.9 incluye más de 700 cambios con respecto a su anterior versión 1.8.


PHP 5.3.0 lanzado

Y tal como se esperaba, se anunció hoy el lanzamiento de la versión definitiva de PHP 5.3.0, con novedades muy importantes en el lenguaje que deberían acercarnos más a PHP6, mejoras en su performance y más de 140 correcciones de errores. Una imprescindible guía de migración desde PHP 5.2 también está disponible, detallando todos los cambios introducidos.


PHP 5.3.0 el próximo 30 de Junio

Finalmente la larga espera ya tiene un fin: los desarrolladores de PHP anunciaron en la lista de php.internals que postergaron el lanzamiento de la versión definitiva del anticipado PHP 5.3.0 hasta el Martes 30 de Junio, con sus Mirrors comenzando a actualizarse a partir de próximo Lunes.

Todavía se están agregando parches de último momento, como los que corrigen problemas con el driver nativo de MySQL, las funciones de fecha y la inicialización en sistemas Sparc. Todas las demás correcciones de errores no-críticos se postergarán hasta la siguiente versión 5.3.1, todavía sin fecha de lanzamiento.

PHP 5.3.0 incluye importantísimas novedades, como por ejemplo: Namespaces (espacios de nombre), funciones anónimas (lambda y closures), driver nativo de MySQL, soporte mejorado para Windows, archivos Phar (similares a los JAR de Java) y hasta el polémico operador goto.


Configurando PHP5 en el Sun Java Web Server

Sun Web Server

A principios de año Sun Microsystems liberaba su Web Server y lo incorporaba a su proyecto OpenSolaris Web Stack. Este Sun Java System Web Server 7.0 es versátil y está enfocado a organizaciones medias y grandes. Puede servir Java Server Pages (JSP) y con el agregado FastCGI puede ser usado con la mayoria de lenguajes de script como PHP, Perl, Python, etc.

Para instalarlo y configurarlo en Linux (el ejemplo usa Fedora) junto con su **PHP 5.2.0 addon** podemos seguir estas instrucciones escritas en nuestro idioma por un gentil blogger.

También podemos configurarlo para que el servidor web use el propio paquete de PHP5 ofrecido por nuestra propia distribución Linux, y no el addon binario de Sun, siguiendo estos otros sencillos pasos.


PHP 5.3.0 RC1

Finalmente comenzamos a ver la luz al final del túnel con el anuncio de la primera versión Release Candidate del anticipadísimo PHP 5.3. Por fin entrados en la última etapa de su desarrollo, todos quienes puedan hacerlo son animados a probar y reportar errores de algunas de las importantísimas novedades incluídas esta versión:

Algunos errores todavía persistentes en esta versión serán corregidos en el próximo RC2.


Driver nativo de MySQL para PHP

El driver nativo de MySQL para PHP (mysqlnd) es una forma alternativa de conectar PHP5 y PHP6 a un servidor MySQL 4.1 o más reciente (la versión 4.0 y anteriores no son soportadas). mysqlnd es un reemplazo de la librería del cliente de MySQL (libmysql) y está estrechamente integrado con PHP a partir de su versión 5.3 y posteriores. Los desarrolladores pueden ahora elegir mysqlnd cuando usen las extensiones mysql, mysqli o PDO-MySQL para conectarse a un servidor MySQL.

Algunas de las ventajas de usar mysqlnd incluyen:

  • Fácil de compilar: no se linkea con libmysql y no tiene dependencias con MySQL.
  • Conexiones persistentes para mysqli.
  • Usa la administración de memoria de PHP y soporta el límite de memoria.
  • Bajo consumo de memoria, mantiene cada registro en memoria sólo una vez; libmysql lo mantiene dos veces.
  • Lleva una larga lista de estadísticas sobre la performance y análisis de cuellos de botella.

El driver nativo de MySQL para PHP está incluído junto con el código fuente de PHP 5.3 y podría ser más rápido que libmysql en algunos casos, por lo que la recomendación es probarlo y decidir usarlo según la performance obtenida.