Seleccionar página

Después del top de habilidades básicas para PHP, traemos más miga al asunto: top de las habilidades avanzadas en PHP. Sin más dilación, vamos al lío.

Top de las habilidades avanzadas en PHP

¿Qué extensión de PHP me ayudará a depurar?

Siempre veo que se le da poca importancia a este punto. Ya expliqué en el post de habilidades básicas que mucha gente, incluidos programadores de otros lenguajes, piensan erróneamente que PHP no se puede depurar… cuando es algo tan básico como en el resto de lenguajes de programación.

A ver si consigo que se vea…

xDebug

Es básico si vas a entrar en PHP montar tu propio servidor local. Y es básico montarlo con la extensión xDebug. Y también es básico usar un IDE «como Dios manda», ya sé que puedes usar un simple bloc de notas… pero también podemos hacer fuego con 2 piedras y nos encendemos los cigarros las cocinas de gas con mecheros.

Tener una herramienta como esta y un IDE que permita poner puntos de ruptura y ver línea a línea lo que hace tu aplicación facilita y acelera cualquier desarrollo. Eso sí, si lo prefieres puedes seguir depurando a base de print_r y var_dump… tú mismo.

Nadie debería seguir pensando que PHP no se depura, y me propongo romper ese mito en este top de las habilidades avanzadas en PHP.

¿Diferencia entre $message y $$mesage?

$message es una variable normal y corriente, donde puedes almacenar datos simples u objetos, lo de toda la vida vamos. $$message es una variable de una variable. ¿¡Qué!?

Pues eso, puedes hacer referencia al nombre de una variable:

$message = "YOU";
$you = "message";

$message2 = "ME";
$you2 = "message2";

echo $message; //output: YOU
echo $$you; //output: YOU

echo $message2; //output: ME
echo $$you2; //output: ME

En resumen, $$message permite cambiar la variable a la que accedes de forma dinámica.

¿Cómo cambiar la cabecera HTTP a UTF-8?

header('Content-Type: text/html; charset=utf-8');

Esto me fue útil en su día también para generar ficheros CSS de forma dinámica. En realidad, era un fichero PHP que enviaba la cabecera para CSS y en su interior leía las preferencias del usuario y en función de eso devolvía un CSS con unas propiedades u otras.

Con las nuevas técnicas, esto ya no es necesario… pero échale imaginación y verás que las cabeceras dan mucho juego (¡puedes hacer exportaciones y mil cosas más!).

Ejecutar funciones anónimas

call_user_func(function() { echo 'Mi función anónima'; });

Esto es útil en callbacks, ya que el precompilador de PHP no pasa por el contenido de las funciones anónimas hasta que no son llamadas. Ahorras tiempo de precompilación.

¿Cómo evaluar el tiempo que tarda en ejecutarse mi código?

Esto está muy bien para saber qué parte de la aplicación ralentiza el funcionamiento general, o para evaluar entre dos códigos que hagan lo mismo cuál es más adecuado.

$startTime = microtime(true);
/** tu código chupi guay **/
$endTime = microtime(true);
$totalTime = $endTime-$startTime;
echo "He tardado $totalTime en ejecutarme.";

Imprescindible para cualquier top de las habilidades avanzadas en PHP.

Formas de recuperar datos de MySQL. Diferencia entre mysql_fetch_object y mysql_fetch_array.

Hay cuatro maneras de recuperar datos:

  • mysqli_fetch_row: obtiene una única fila en forma de array indexado.
  • mysqli_fetch_array: lo mismo, pero puede devolver el array de forma asociativa tomando como índices los nombres de las columnas o indexado, en función del parámetro que le pasemos.
  • mysqli_fetch_object: da la fila en formato de objeto, cuyas propiedades serán cada una de las columnas de la consulta.
  • mysqli_fetch_assoc: lo mismo, pero devuelve el array de forma asociativa tomando como índices los nombres de las columnas.
HorribleMaloBlehBienGenial (6 votos, media: 4,50 de 5)
Cargando…

Hasta aquí este pequeño top de las habilidades avanzadas en PHP. Y tú, ¿qué otras pequeñas piezas de código sueles usar frecuentemente en tus desarrollos avanzados? ¡Cuéntame y ayúdanos a mejorar a todos!

¡Sígueme!

Miguel Solla

Developer at Extra Software
Programador informático, especializado en web.
Apasionado de la astronomía y entusiasta de la ciencia en general.
Miguel Solla
¡Sígueme!