Blog

Lo que un programador php debería conocer para actualizarse a php5.3

Publicado en Desarrollo web en Enero 18, 2010 1:40 am

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 namespaces

function 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;