elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Introducción a FirePHP [Tutorial]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Introducción a FirePHP [Tutorial]  (Leído 1,946 veces)
madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Introducción a FirePHP [Tutorial]
« en: 21 Marzo 2011, 22:59 pm »

Tutorial de FirePHP
=======================



FirePHP es un plugin para FireFox utilizado por desarrolladores web para realizar la depuración
de las aplicaciones.

En principio se creo el plugin Firebug que se utiliza para debuggear "interfaces web" o lo que viene a
ser las paginas web estáticas. Para la depuración de las aplicaciones del lado del servidor se ha creado
el plugin llamado FirePHP.

Para utilizar este plugin hay que descargarlo e instalarlo desde la pagina oficial de addons de Firefox (http://addons.mozilla.org) y
descargar unos scripts en PHP para "conectar" la aplicación PHP con la consola de FirePHP.

Después de instalar el plugin hacemos clic en el icono de la cucaracha y abrimos la consola.



Una vez instalado el plugin nos dirigimos a su pagina oficial y descargamos los ficheros necesarios que debamos incluirnos en nuestro
proyecto para poder usarlo. La pagina oficial es (http://firephp.org).



Uno de esos ficheros deberemos incluirlo en nuestro proyecto web.



Para hacer las pruebas creen un script PHP y llamadlo como queráis. Lo primero que debemos hacer en nuestro proyecto
es habilitar el buffer de salida, para eso instanciamos el objeto ob_start(), nuestro script quedara algo así:

Código
  1. <?php ob_start(); ?>
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <title>untitled</title>
  7. </head>
  8. <body>
  9. </body>
  10. </html>
  11. <?php ob_end_flush(); ?>

El siguiente paso es incluir el fichero fb.php o fb.php4 si se utiliza PHP 4 en nuestro proyecto.

Código
  1. <?php ob_start();
  2. include('includes/FirePHPCore/fb.php');
  3.  
  4. ?>
  5. <!DOCTYPE html>
  6. <html lang="en">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  9. <title>untitled</title>
  10. </head>
  11. <body>
  12. <?php
  13. echo "Hola"; //Para probar que PHP funciona
  14. ?>
  15. </body>
  16. </html>
  17. <?php ob_end_flush(); ?>


Los métodos incluidos en la clase FirePHP pueden ser instanciados de forma estática.
Para añadir un log o hacer un pequeño Hola Mundo con FirePHP podemos usar el objeto log:

<?php
 FB::log('Hola mundo!');
?>

Ahora si miramos en la consola veremos nuestro mensaje.



Si no muestra ningún mensaje hay que asegurarse de que FirePHP esta habilitado, Menu Herramientas --> FirePHP --> FirePHP Enabled (tiene que estar marcado)

Os preguntareis básicamente para que sirve esto? Cuando debuggeamos una aplicación podemos cambiar el típico echo 'el objeto/función X esta funcionando'; por
un mensaje o log en este caso que se muestre en la consola del plugin.

También podemos usarlo para depurar el contenido de las variables:

Código
  1. <?php
  2. $variable = 'probando firephp';
  3. FB::log('Hola mundo!');
  4. FB::log($variable);
  5. ?>

Y el resultado seria el siguiente:



Para especificar el nombre de la variable o algún mensaje descriptivo agregamos lo siguiente:

Código
  1. <?php
  2. $variable = 'probando firephp';
  3. FB::log('Hola mundo!');
  4. FB::log($variable, 'Mi variable');
  5. ?>

Y en el resultado nos mostraría el nombre de la variable o el texto descriptivo indicado.



Para mensajes informativos se emplea el método info:

Código
  1. <?php
  2. FB::info('Esto es muy importante!');
  3. ?>



A parte de los mensajes informativos también podemos hacer advertencias:

Código
  1. <?php
  2. FB::warn('Esto es una advertencia!');
  3. ?>



O mostrar algún error:

Código
  1. <?php
  2. FB::error('Esto es un error!');
  3. ?>



Hay que asegurarse que no estamos usando FirePHP en un entorno de producción o en alguna web corporativa, ya que, puede ser bastante inseguro.
FirePHP se puede deshabilitar usando otro método booleano llamado SetEnabled(false/true), quedaría algo así:

Código
  1. <?php ob_start();
  2. include('includes/FirePHPCore/fb.php');
  3. FB::SetEnabled(false);
  4. ?>
  5. <!DOCTYPE html>
  6. <html lang="en">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  9. <title>untitled</title>
  10. </head>
  11. <body>
  12. <?php
  13. $variable = 'probando firephp';
  14. FB::log('Hola mundo!');
  15. FB::log($variable, 'Mi variable');
  16.  
  17. FB::info('Esto es muy importante!');
  18.  
  19. FB::warn('Esto es una advertencia!');
  20.  
  21. FB::error('Esto es un error!');
  22. ?>
  23. </body>
  24. </html>
  25. <?php ob_end_flush(); ?>

O simplemente borrar las lineas referentes a FirePHP. Si refrescamos la pagina veremos que los mensajes ya no aparecen en la consola y no debemos
preocuparnos por la seguridad.

Para agrupar los mensajes FirePHP nos provee una funcionalidad que permite crear grupos para mostrar los diferentes mensajes en la consola del
plugin. Un ejemplo de como funcionan los grupos lo tenéis abajo:

Código
  1. <?php ob_start();
  2. include('includes/FirePHPCore/fb.php');
  3. FB::SetEnabled(true);
  4. ?>
  5. <!DOCTYPE html>
  6. <html lang="en">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  9. <title>untitled</title>
  10. </head>
  11. <body>
  12. <?php
  13.  
  14. FB::group('Este es el primer grupo'); // Indica el inicio y el nombre del grupo.
  15. $variable = 'probando firephp';
  16. FB::log('Hola mundo!');
  17. FB::log($variable, 'Mi variable');
  18.  
  19. FB::info('Esto es muy importante!');
  20.  
  21. FB::warn('Esto es una advertencia!');
  22.  
  23. FB::error('Esto es un error!');
  24.  
  25. FB::GroupEnd(); // Indica el fin del grupo.
  26. ?>
  27. </body>
  28. </html>
  29. <?php ob_end_flush(); ?>


Y el resultado seria la agrupación de los mensajes:



Imaginémonos que no queremos mostrar en la pagina web los mensajes de error de PHP y que solo se vean en la consola, creamos un objeto a partir de la clase
FirePHP e instanciamos los métodos registerExceptionHandler y registerErrorHandler.

Código
  1. <?php
  2. $obj = new FirePHP();
  3. $obj->registerExceptionHandler();
  4. $obj->registerErrorHandler();
  5.  
  6. echo $variableSinDefinir;
  7.  
  8. ?>

Y el mensaje de error seria mostrado directamente en la consola y no en la pantalla a la vista de todos.

FirePHP permite debuggear hasta tablas o arrays. Se hace con el método table, el primer parámetro es un nombre descriptivo y el segundo es el array.

Código
  1. <?php ob_start();
  2. include('includes/FirePHPCore/fb.php');
  3. FB::SetEnabled(true);
  4. ?>
  5. <!DOCTYPE html>
  6. <html lang="en">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  9. <title>untitled</title>
  10. </head>
  11. <body>
  12. <?php
  13.  
  14. $miArray = array (
  15. array('Asignatura', 'Profesor'),
  16. array('Matematicas', 'Pedro Sanchez'),
  17. array('Lengua', 'Soraya Labrada'),
  18. array('Biologia', 'Mercedes Lara')
  19.  
  20. ); //Un array que contiene otros arrrays.
  21.  
  22. FB::table('Tabla de Asignaturas', $miArray);
  23.  
  24. ?>
  25. </body>
  26. </html>
  27. <?php ob_end_flush(); ?>

Y en la consola veremos nuestro array representado en una tabla:



También podemos mostrar un array en forma de log:

Código
  1. <?php
  2.  
  3. $miArray = array(1,2,3,4,5,6,7,8,9);
  4.  
  5. FB::log($miArray);
  6.  
  7. ?>

Y nos mostrara algo parecido a lo de abajo, si hacemos clic en el mensaje informativo nos abrira una especie de popup con el
contenido del array:



Si no fuera bastante, FirePHP soporta tambien las clases y los objetos, o lo que viene siendo la POO.

Código
  1. <?php ob_start();
  2. include('includes/FirePHPCore/fb.php');
  3.  
  4. class MiClase {
  5. function hacerAlgo() {
  6. return 'Hola mundo desde POO';
  7. }
  8.  
  9. }
  10. ?>
  11. <!DOCTYPE html>
  12. <html lang="en">
  13. <head>
  14. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  15. <title>untitled</title>
  16. </head>
  17. <body>
  18. <?php
  19.  
  20. $obj = new MiClase();
  21.  
  22. FB::info($obj->hacerAlgo());
  23. ?>
  24. </body>
  25. </html>
  26. <?php ob_end_flush(); ?>

Y mostrara como mensaje informativo lo que devuelve nuestro metodo. Para ver el contenido de una clase entera se haria asi:

Código
  1. <?php
  2.  
  3. $obj = new MiClase();
  4.  
  5. FB::info($obj);
  6. ?>

Esto es todo, claramente se pueden hacer mas cosas con FirePHP, os recomiendo que visiteis la web del plugin (firephp.org) donde tienen una
wiki (firephp.org/wiki) con muchos tutoriales y documentacion.


« Última modificación: 21 Marzo 2011, 23:05 pm por madpitbull_99 » En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Aeros

Desconectado Desconectado

Mensajes: 198


Ver Perfil
Re: Introducción a FirePHP [Tutorial]
« Respuesta #1 en: 23 Marzo 2011, 11:52 am »

tremendo!!! probando

muchas gracias!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tutorial
Ingeniería Inversa
Blue_box 5 2,684 Último mensaje 15 Septiembre 2004, 00:48 am
por Blue_box
[Tutorial] Crear un servidor para WoW usando ArcEmu y NCDB [Tutorial] « 1 2 ... 210 211 »
Juegos y Consolas
Ariath 2,101 719,667 Último mensaje 2 Junio 2009, 22:54 pm
por Ariath
Introducción a los Web Application Firewalls (WAF)
Seguridad
madpitbull_99 4 5,910 Último mensaje 15 Julio 2011, 18:33 pm
por Dr [F]
Introducción al comando Find
GNU/Linux
madpitbull_99 2 2,235 Último mensaje 28 Julio 2011, 22:55 pm
por portaro
Introducción al patrón Singleton con PHP
PHP
madpitbull_99 2 2,759 Último mensaje 12 Agosto 2011, 16:46 pm
por madpitbull_99
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines