MANUAL DE PHP

(y algo mas)windsurf pozo izquierdo
Google
search for in the  
ELMARRAJO.COM mysql bulma desarrollo web linux fedora html ayuda

windsurf mercedes camper

IV. Depurador avanzado de PHP

Introducción

APD (por sus siglas en inglés) es el depurador avanzado de PHP. Fue escrito para proporcionar la capacidad de analizar y depurar el código PHP, así como también proporcionar la capacidad de imprimir una completa descripción acerca de errores en las aplicaciones. APD soporta la depuración interactiva, pero por omisión escribe información para localizar archivos. Además ofrece registros basados en eventos de tal manera que los diversos niveles de información (incluyendo llamados a funciones, argumentos pasados, intérvalos de tiempo entre cambios en un documento, etc.) puedan ser activados o desactivados por scripts individuales.

Atención

APD es una extensión Zend, modifica la manera interna en la que PHP maneja los llamados a funciones, y en este sentido pudiera o no pudiera ser compatible con otras extensiones Zend (por ejemplo Zend Optimizer).

Instalación

APD se encuentra actualmente disponible como una extensión PECL en http://pecl.php.net/package/apd. Asegúrese de tener instalada la versión CGI de PHP y de que esté disponible en su ruta actual acompañado con el script phpize.

Ejecute el siguiente comando para descargar, estructurar e instalar la última versión estable de APD:
pear install apd

Ésto instala automáticamente el módulo APD Zend en su directorio de extensiones de PHP. No es obligatorio mantenerlo allí; es posible almacenar el módulo en cualquier directorio que PHP pueda leer mientras establezca adecuadamente el parámetro zend_extension.

Los usuarios de Windows pueden descargar la extensión dll php_apd.dll desde http://snaps.php.net/win32/PECL_STABLE/.

En su archivo INI, agregue las siguientes líneas:

zend_extension = /absolute/path/to/apd.so
apd.dumpdir = /absolute/path/to/trace/directory
apd.statement_tracing = 0

Dependiendo de su instalación de PHP, la directiva zend_extension puede ser una de las siguientes:

zend_extension              (non ZTS, non debug build)
zend_extension_ts           (    ZTS, non debug build)
zend_extension_debug        (non ZTS,     debug build)
zend_extension_debug_ts     (    ZTS,     debug build)

Instalar en Win32

Para instalar APD bajo Windows necesita un entorno de compilación PHP en funcionamiento como se describe en http://php.net -- básicamente, se requiere tener Microsoft Visual C++, win32build.zip, bison/flex, y saber cómo usarlo. Además asegúrese de que adp.dsp tenga terminaciones de líneas en modo DOS; si tiene terminaciones de líneas en modo UNIX, Microsoft Visual C++ se quejará al respecto.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Opciones de configuración de APD

NombreValor predeterminadoCambiableRegistro de cambio
apd.dumpdirNULLPHP_INI_ALL 
ini.apd.statement-tracing"0"PHP_INI_ALL 
For further details and definitions of the PHP_INI_* constants, see the Apéndice G.

A continuación se presenta una corta explicación de las directivas de configuración.

apd.dumpdir string

Establece el directorio en el cual APD escribe la salida del análisis de los archivos. Puede especificar una ruta absoluta o relativa.

Puede especificar un directorio diferente como un argumento a apd_set_pprof_trace().

apd.statement_tracing boolean

Especifica si se hacen o no análisis por línea. Activándolo (1) impactará en el desempeño de su aplicación.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Cómo usar PHP-APD en sus scripts

  1. En la primera línea de su script PHP, ejecute la función apd_set_pprof_trace() para iniciar el análisis:

    apd_set_pprof_trace();

    Puede insertar la línea en cualquier parte de su script, pero si no inicia el análisis al comienzo de su script descarta el examen de información que de otra manera pudiera llevarlo a un atascamiento en el desempeño.

  2. Ahora ejecute su script. La salida será escrita en apd.dumpdir/pprof_pid.ext.

    Sugerencia: Si está ejecutando la versión CGI de PHP, necesitará agregar la opción '-e' para habilitar una ampliación de la información con la finalidad de que apd funcione apropiadamente. Por ejemplo: php -e -f script.php

  3. Para mostrar la información analizada con formato, emita el comando pprofp con las opciones de ordenamiento y visualización de su preferencia. La salida con formato será algo como:
    bash-2.05b$ pprofp -R /tmp/pprof.22141.0
    
    Trace for /home/dan/testapd.php
    Total Elapsed Time = 0.00
    Total System Time  = 0.00
    Total User Time    = 0.00
    
    
    Real         User        System             secs/    cumm
    %Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
    --------------------------------------------------------------------------------------
    100.0 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0000   0.0009            0 main
    56.9 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0005   0.0005            0 apd_set_pprof_trace
    28.0 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 preg_replace
    14.3 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 str_replace

    La opción -R usada en este ejemplo ordena la tabla analizada por la cantidad de tiempo real que el script tardó ejecutando una función dada. La columna "cumm call" revela cuántas veces fue llamada cada función, y la columna "s/call" revela cuántos segundos fueron necesarios para cada función, en promedio.

  4. Para generar una estructura de llamados a un archivo que pueda importar a la aplicación de análisis KCacheGrind, emita el comando pprof2calltree.

Información de contacto

Si tiene comentarios, soluciones a fallos, mejoras o quiere ayudar a desarrollar esta bestia, puede enviar un correo a apd@mail.communityconnect.com. Cualquier ayuda es bien recibida.

Tabla de contenidos
apd_breakpoint -- Detiene el intérprete y espera un retorno de carro desde el socket
apd_callstack -- Devuelve la pila actual de llamados como una matriz
apd_clunk -- Lanza una advertencia y una pila de llamadas
apd_continue -- Reinicia el intérprete
apd_croak -- Lanza un error, una pila de llamadas y detiene la ejecución
apd_dump_function_table -- Imprime la tabla actual de funciones
apd_dump_persistent_resources -- Devuelve todos los recursos persistentes como una matriz
apd_dump_regular_resources -- Devuelve todos los recursos regulares actuales como una matriz
apd_echo -- Imprime hacia el socket de depuración
apd_get_active_symbols -- Obtiene una matriz de los nombres de las variables actuales en el ámbito local
apd_set_pprof_trace -- Inicia la depuración de la sesión
apd_set_session_trace -- Inicia la depuración de la sesión
apd_set_session -- Cambia o establece el nivel de depuración actual
apd_set_socket_session_trace -- Inicia la depuración remota de la sesión
override_function -- Sobreescribe funciones incorporadas
rename_function -- Renombra nombre_original a nombre_nuevo en el símbolo function_table global


add a note add a note User Contributed Notes
Depurador avanzado de PHP
judas dot iscariote at gmail dot com
07-May-2006 10:52
if you are looking for better/different alternatives to APD, check the xdebug website http://www.xdebug.org or download it from PECL http://pecl.php.net/xdebug
bugbuster at darrencampbell dot com dot au
22-May-2005 01:53
Locate the root-cause of defects, fast.

If you need to locate the source of a defect in complicated web-based PHP applications with lots of conditional includes (osCommerce and Zen-Cart are reasonably complex), use APD to create a profile dump.

Then filter the dump for lines containing "!" to produce a list of included (required) files in the order they were included.

On my Win98 dev box I use: find "!" dumpfile > trace_program.txt

I use the trace_program.txt to backtrack to the root-cause of defects appearing in the browser.  Great for maintaining systems you did not build yourself.
ng4rrjanbiah at rediffmail dot com
05-Apr-2005 10:52
Some useful links on APD:
1. Profiling PHP Applications ( http://www.schlossnagle.org/~george/talks/Profiling-phpworks-2004.pdf ), [1.40 MB], George Schlossnagle, 2004-09-23
2. PHP Performance Profiling ( http://www.linuxjournal.com/article/7213 ), [13.16 KB], Jonathan Oxer, 2003-10-21
3. APD Wiki ( http://www.wiki.cc/php/Apd )

HTH,
R. Rajesh Jeba Anbiah
yoghurtmetperzik at gmail dot com
25-Jan-2005 07:15
If pprofp reports 'No such file or directory', it's probably because it contains an incorrect path to your php client. Open pprofp in your fav editor, edit the first line, and try again.

Citas célebres

Mi interés por el futuro se debe a que voy a pasar el resto de mi vida.

Charles F. Kettering
Inventor estadounidense
(1876-1958)
Citas en tu mail
©Contenidos Gratis

Ilusiones Opticas
ilusion_optica_067.jpg
Contenidos Web

Chiste de... Parejas
Fortuna

El: -¿Me amas sólo porque mi padre me dejó una fortuna?.

Ella: -No, querido. Yo te amaría sin importar quién te la dejó.
Chistes en tu mail
©ContenidosGratis

Humor Gráfico
humor_grafico_018.jpg
Contenidos Web

Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos
Cake ManiaCake Mania
Jugadores: 6835
Categoría del juego: Acción
Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero.
Rainbow WebRainbow Web
Jugadores: 2199
Categoría del juego: Puzzles
Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente.
Mahjongg FortunaMahjongg Fortuna
Jugadores: 12462
Categoría del juego: Solitarios
Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta.
Chainz 2Chainz 2
Jugadores: 6955
Categoría del juego: Puzzles
Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más.
DeliciousDelicious
Jugadores: 4405
Categoría del juego: Acción
Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues!
BookwormBookworm
Jugadores: 4568
Categoría del juego: Palabras
Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos!
ZumaZuma
Jugadores: 4976
Categoría del juego: Acción
Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás!
Jewel of AtlantisJewel of Atlantis
Jugadores: 3798
Categoría del juego: Puzzles
Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis.
Jewel QuestJewel Quest
Jugadores: 3727
Categoría del juego: Puzzles
Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos!
Bejeweled 2Bejeweled 2
Jugadores: 3659
Categoría del juego: Puzzles
Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca.
Contenidos gratis en tu webSiguiente >>

Fotos divertidas
fotos_increibles_0444.jpg
Contenidos Web
microrobots avion deportes riesgo recetas cocina canaria juegos online gratis moto motociclismo horoscopos naranjas valencianas surf canarias montañismo ciudades turismo postales gratis library Horoscopos Diarios Windsurf Canarias
fregadero microondas placa electrica bañopreparar camper pantalla plananevera compresor electricacamper fiat ducato camper baño quimicomampara enrollable bañocamper aire climatizadofurgoneta surf windsurffurgoneta surf windsurftelevisor furgonetas camperfurgonetas camper cama

Sudoku del día
Nivel de dificultad: Fácil



Cómo jugar:
El juego consiste en colocar los números del 1 al nueve de tal forma que no se repita el mismo número en la columna, fila y caja (bloques 3x3 enmarcados).

©Contenidos Gratis | Sudoku en tu mail
Sucedió el...

30 de agosto de 1617

Fallece Santa Rosa de Lima, por la que se celebra el "Día de la Patrona de América".
Efemérides en tu mail
©Contenidos Gratis
windsurf canarias youtube porno canarias baleares valencia madrid