domingo, 16 de diciembre de 2007

Reflection Class

Desde PHP 5 se cuenta con un conjunto de clases e interfaces que nos permiten obtener información sobre las clases, funciones, métodos, atributos y objetos. Este conjunto nos permite, por ejemplo, saber cuantos parámetros recibe una función, y cuantos son requeridos... Un ejemplo de cómo usar esto.

/**
* Esta funcion repite
*
* @param string $texto
* @param integer $veces
*/
function repeat($texto, $veces = 2) {
return str_repeat($texto, $veces);
}
$reflection = new ReflectionFunction('repeat');
echo 'Definida por el usuario: ' , $reflection->isUserDefined() , "\r\n";
echo 'Documentacion: ' , $reflection->getDocComment() , "\r\n";
echo 'Cantidad de Parametros: ' , $reflection->getNumberOfParameters() , "\r\n";
foreach ($reflection->getParameters() as $parametro)
{
echo 'Parametro "' , $parametro->getName() , '" ' , ($parametro->isOptional() ? '' : 'no ') , 'es opcional' , "\n";
echo 'Por default: ' , ($parametro->isDefaultValueAvailable() ? $parametro->getDefaultValue() : 'no tiene') , "\n";
}
?>

domingo, 9 de diciembre de 2007

JSON

JSON es un formato de transmisión de datos muy útil para pasar de un código a otro.

El ejemplo más común es pasar un objeto o un array de PHP a JavaScript y viceversa. Para esto PHP 5 ofrece dos funciones que hacen el transpaso: json_encode y json_decode. Existen clases que ofrecen un funcionamiento similar para PHP 4.

La ventaja de esta notacion es la transparencia y facilidad con la que se transmiten los datos. XML es una alternativa que también presenta sus ventajas. Es preferible para una serie de datos, si se quieren hacer consultas con XQuery, pero para la transmisión de un dato en particular la sintaxis de JavaScript se presenta como más simple.