Depuración de código con PHP - Grupo de Procesamiento del Lenguaje...
Transcript of Depuración de código con PHP - Grupo de Procesamiento del Lenguaje...
![Page 1: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/1.jpg)
Depuración de código con PHP
Ramón Muñiz Sánchez
![Page 2: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/2.jpg)
2
INDICE
Introducción.
Funciones internas de PHP.
Funciones externas de PHP.
Referencias
Fin
![Page 3: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/3.jpg)
3
Introducción
Al programar en cualquier lenguaje de programación se pueden cometer errores.
La mayoría de las veces, suelen ser errores de fácil solución.
Aunque a veces,no tienen solución trivial y necesitamos conocer los valores de nuestras variables para corregirlo.
![Page 4: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/4.jpg)
4
Introducción
Para ello existen dos tipos de “herramientas” de depuración.
En este caso vamos a clasificarlas en dos conjuntos.– Herramientas proporcionadas por el lenguaje.– Funciones externas.
![Page 5: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/5.jpg)
5
Funciones internas de PHP
Son aquellas funciones que proporciona PHP que se pueden usar para depurar código.Estas funciones permiten conseguir información sobre las variables que usamos:– print ().– print_r().– var_dump().– gettype()– is_string(),is_integer(),is_array(),etc.
![Page 6: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/6.jpg)
6
print();– Función que añade datos a la respuesta HTML del
script.– Podemos usarla para generar código HTML con
datos de nuestras variables.– Uso:
print (“$nombre_variable”)
![Page 7: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/7.jpg)
7
print_r
Función que imprime información sobre una variable
Uso:– print_r ($variable,[bool devolver])
$variable: variable a mostrar
bool devolver: si es true, devuelve la salida y a false, la imprime
![Page 8: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/8.jpg)
8
var_dump()
Devuelve el tipo de la variable y su contenido
Uso:– var_dump($variable);
![Page 9: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/9.jpg)
9
gettype ()
Instrucción que devuelve una cadena con el tipo de la variable que le pasemos.
Uso:– gettype($variable)
![Page 10: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/10.jpg)
10
is_string(),is_integer(),is_array(),...
Funciones equivalentes a gettype().
Mayor velocidad que gettype().
Devuelven true si son del tipo especificado
is_integer(),is_int(), is_bool(),is_float(),
is_double(),is_array(),is_string(),etc...
Uso:– is_string($variable)
![Page 12: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/12.jpg)
12
Funciones externas de PHP
Estas funciones aumentan la capacidad de depuración, permitiendo comprobar los scripts sin necesidad de mostrar datos en HTML.
Algunos de ellos:– APD– Gubed– Xdebug– ZendStudio
![Page 13: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/13.jpg)
13
APD
Conjunto de funciones que realizan trazas de los scripts.
Es necesario instalar la librería en el servidor.
Funciona haciendo llamadas a las funciones implementadas por la librería.
Multiplataforma.
Gratuito
![Page 14: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/14.jpg)
14
APD. Uso(I)
1. apd_set_pprof_trace(); Función que inicia la depuración del script.
2. Ejecución del script.
3. Revisión del fichero “apd.dumpdir/pprof_pid.ext.”
![Page 15: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/15.jpg)
15
APD.Uso (II)
Resultado de usar APD
![Page 16: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/16.jpg)
16
Gubed
Programa de depuración de PHP
Necesita un servidor con PHP.
Existe una implementación como plugin de Mozilla
Permite depuración interactiva.
Gratuito.
Multiplataforma.
![Page 17: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/17.jpg)
17
Gubed. Uso
Ejecución de script dentro del programa
Posibilidad de colocar paradas de ejecución.
Ejecutar paso a paso o por bloques el codigo.
Mostrar valores de las variables.
![Page 18: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/18.jpg)
18
Gubed.Ejemplo
![Page 19: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/19.jpg)
19
Xdebug
Extensión que permite la traza de las llamadas a funciones.
Es necesario instalación en servidor PHP
Muestra los resultados de la depuración en HTML.
![Page 20: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/20.jpg)
20
Xdebug. Uso
xdebug_start_trace(); Función para iniciar la traza.
Añadir funciones de Xdebug que devuelvan datos sobre el script.
Ejecutar script en navegador.
Muestra el resultado de la traza en HTML o en fichero de texto.
![Page 21: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/21.jpg)
21
Xdebug.Ejemplo
Ejemplo depuración en HTML
Ejemplo depuración en fichero de texto
![Page 22: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/22.jpg)
22
ZendStudio
IDE de desarrollo PHP.
Incorpora su propio depurador.
No necesita instalar nada en el servidor.
No necesita añadir código adicional al script.
![Page 23: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/23.jpg)
23
ZendStudio. Uso
En el mismo IDE, se ponen los puntos de parada de la ejecución.
Se van pulsando los botones de arriba/abajo para ir pasando la ejecución.
Se muestran los valores de las variables y el tipo que son.
![Page 25: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/25.jpg)
25
Referencias
Manual PHP en hospedajesydominios.com
ZendStudio
Gubed
Xdebug
APD
![Page 26: Depuración de código con PHP - Grupo de Procesamiento del Lenguaje …gplsi.dlsi.ua.es/asignaturas/pi/pi-old/fitxers/expos/jaf/... · 2005-11-30 · Al programar en cualquier lenguaje](https://reader035.fdocument.pub/reader035/viewer/2022070818/5f15e03eb69c3272b635444a/html5/thumbnails/26.jpg)
26
Fin
¿Preguntas?