Lo que un programador php debería conocer para actualizarse a php5.3
El mismo código en php5.3 se ejecuta un 50% más rápido que un código escrito en php5.2
La mejora del rendimiento unido a la mejora en cuanto seguridad es lo que debería motivar a cualquier desarrollador php a actualizarse a la nueva versión.
Además pueden surgir problemas en el código escrito en versiones anteriores.
Entre los cambios más importantes que podemos encontrarnos, están los siguientes:
Las short tags de php están obsoletas
Ahora usar <? o <?=$variable dará error tipo DEPRECATED e interrumpirá la ejecución de la aplicación web.
Esto era recomendable desde hace varios años para evitar conflictos en documentos xml, que empiezan con dichas tags.
//el siguiente código dará error <? echo "hola"; ?> <?=$di_hola ?> //el código correcto es el siguiente <?php echo "hola"; ?> <?php echo $di_hola; ?>
Nueva constante __DIR__
Esta nueva constante sirve para reemplazar el típico código dirname(__FILE__) que nos devuelve el nombre del directorio en el cual se encuentra el script desde el que se invoca.
Mejoras en el operador ternario
Ahora bastará indicar dos opciones para una situación en la que una variable tendrá un valor o no.
Php tomará como buena la opción que tenga un valor true o no sea empty().
echo true?:false;//true
echo false?:true;//true
echo ""?1;//1
echo 0?:2;//2
$array= array()?:array(1);//la variable array contendrá -> array(1);
echo strlen("")?:strlen("a");//1
mySQLInd
Librería cliente entre mysql y php, que no requiere otras librerias clientes intermedias.
Funciona de una forma transparente al programador y de una forma mucho más eficiente que libmysql.
El único inconveniente es que no tiene soporte completo actualmente para PDO, solo para la interfaz mysqli.
*NOTA: este cliente guardará por defecto datos en campos tipo PASSWORD de mysql con compatibilidad superior a mysql4, se elimina el soporte para formatos anteriores dando un error del tipo
“mysqlnd cannot connect to MySQL 4.1+ using old authentication“.
Archivos .user.ini y distintas configuraciones de php para un mismo php.ini
Se pueden usar archivos .user.ini para configuraciones de fastcgi/cgi similares a .htaccess.
Ahora los archivos php.ini podrán contener archivos .ini adicionales con configuraciones especializadas para un directorio concreto.
Namespaces
Los namespaces era una funcionalidad muy esperada por los desrrolladores de php. Ahora gracias a ellos podremos tener un código muchos más limpio y ordenado.
Php 5.3 y superiores soportarán múltiples namespaces por archivo.
Ejemplo de código sin usar namespacesfunction common_hacerAlgo(){ /**/ } class Common_Mailing { /**/ } define('COMMON_CONST',''); common_hacerAlgo(); new Common_Mailing(); COMMON_CONST;Mismo ejemplo con namespaces
namespace COMMON; function hacerAlgo() {} class Mailing {} const CONS = ''; use COMMON as cm; hacerAlgo(); new Mailing(); CONST;
— Posted by admin | Posted in Desarrollo web | Posted on January 18, 2010




Muy interesante lo que comentas Asier.
Y me surgen dudas.. por que entonces.. en el caso de los frameworks como CodeIgniter que te recomiendan trabajar con las short tags, ¿Darán también error? o ¿En este caso es una excepción, porque tienen una especie de capa intermedia que lo permite? En la documentación no me queda claro del todo.
Comentario de Miguel Angel Ivars Mas — January 21, 2010 @ 7:03 pm
[...] [...]
Pingback de Script para ayudarte a migrar de php5.2 a php5.3 | Blackslot, servicios avanzados de desarrollo web, hosting y sistemas TI — January 25, 2010 @ 9:33 pm
Buen post, aunque lo del rendimiento no es tan exagerado. Hay quien ha llegado a mejorar un 30%, aunque personalmente no noto tanta diferencia.
Comentario de Israel Viana — January 26, 2010 @ 3:04 pm
@Miguel Angel Ivars Mas
Sí, darán error. En la documentación de CodeIgniter aparecen malas prácticas en la programación php, como la que comentas.
Es mejor acostumbrarse a desarrollar con las convenciones oficiales de Zend http://framework.zend.com/manual/en/coding-standard.html
Un saludo
Comentario de Asier Marqués — January 26, 2010 @ 3:13 pm
@Israel Viana yo lo he probado en producción y compilando con sólo las librerías necesarias el rendimiento es notable, incluso sin usar opcode cache.
En entornos Microsoft el rendimiento es aún más visible, ya que ahora se compilan paquetes y extensiones con VC9 en lugar de VC6.
Un saludo
Comentario de Asier Marqués — January 26, 2010 @ 3:16 pm
[...] This post was mentioned on Twitter by Santi Saez, Santi Saez. Santi Saez said: Lo que un programador debería conocer para actualizar a PHP 5.3 (http://tr.im/LDts) y script de ayuda (http://tr.im/LDtT), vía @blackslot [...]
Pingback de Tweets that mention Lo que un programador php debería conocer para actualizarse a php5.3 | Blackslot, servicios avanzados de desarrollo web, hosting y sistemas TI -- Topsy.com — January 26, 2010 @ 8:45 pm
Las short tags se pueden usar poniendo la directiva short_open_tag a On en el php.ini
A mi me parece una gran mejora también, el soporte de funciones lambda que hace mucho más comodo el uso callbacks.
Comentario de jpgerek — April 10, 2010 @ 12:28 pm
Muy buen aporte, lo que si tambien puede dar error son los short_tags se deberian habilitar y reemplazar los “ereg($parametro1,$parametro2)” por “preg_match(‘/’.$parametro1.’/',$parametro2)”
Comentario de Cesar — July 8, 2010 @ 4:30 pm
[...] deshabilitando la directiva enable_dl de PHP, etc.). Una instalación por defecto de PowerStack con PHP 5.3 + los parches de Google para MySQL 5.5 mejoran en un 30-40% el rendimiento de una instalación por [...]
Pingback de PowerStack 0.2 | Woop! — June 8, 2011 @ 7:18 am