<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=FirePHP</id>
	<title>FirePHP - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=FirePHP"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=FirePHP&amp;action=history"/>
	<updated>2026-05-27T19:51:50Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=FirePHP&amp;diff=3417626&amp;oldid=prev</id>
		<title>Javiermartin jc: Texto reemplazado: «&lt;div align=&quot;justify&quot;&gt;» por «»</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=FirePHP&amp;diff=3417626&amp;oldid=prev"/>
		<updated>2019-06-20T20:32:18Z</updated>

		<summary type="html">&lt;p&gt;Texto reemplazado: «&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;» por «»&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 20:32 20 jun 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot; &gt;Línea 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|web= &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|web= &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}} &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}} &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''FirePHP''' es un complemento para hacer [[debug]] de aplicaciones [[PHP]], lo más rápido es sacar en la página el contenido de variables de [[PHP]], para ver sus valores directamente en la página [[Web]], por medio de instrucciones echo, print_r o similares. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''FirePHP''' es un complemento para hacer [[debug]] de aplicaciones [[PHP]], lo más rápido es sacar en la página el contenido de variables de [[PHP]], para ver sus valores directamente en la página [[Web]], por medio de instrucciones echo, print_r o similares. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== FirePHP-Firebug ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== FirePHP-Firebug ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-2110009:rev-3417626 --&gt;
&lt;/table&gt;</summary>
		<author><name>Javiermartin jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=FirePHP&amp;diff=2110009&amp;oldid=prev</id>
		<title>Antonio jc.jiguani2: Página creada con '{{Ficha Software |nombre= FirePHP |familia= Lenguajes de Programación PHP |imagen=ImagenFirePHP.jpg |tamaño= |descripción= FirePHP LPPHP |imagen2= |tamaño2= |descripción2= ...'</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=FirePHP&amp;diff=2110009&amp;oldid=prev"/>
		<updated>2013-12-07T23:22:58Z</updated>

		<summary type="html">&lt;p&gt;Página creada con &amp;#039;{{Ficha Software |nombre= FirePHP |familia= Lenguajes de Programación PHP |imagen=ImagenFirePHP.jpg |tamaño= |descripción= FirePHP LPPHP |imagen2= |tamaño2= |descripción2= ...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Ficha Software&lt;br /&gt;
|nombre= FirePHP&lt;br /&gt;
|familia= Lenguajes de Programación PHP&lt;br /&gt;
|imagen=ImagenFirePHP.jpg&lt;br /&gt;
|tamaño=&lt;br /&gt;
|descripción= FirePHP LPPHP&lt;br /&gt;
|imagen2=&lt;br /&gt;
|tamaño2=&lt;br /&gt;
|descripción2=&lt;br /&gt;
|creador= &lt;br /&gt;
|desarrollador= &lt;br /&gt;
|diseñador=&lt;br /&gt;
|modelo de desarrollo=&lt;br /&gt;
|lanzamiento inicial= &lt;br /&gt;
|versiones=&lt;br /&gt;
|última versión estable=&lt;br /&gt;
|género=&lt;br /&gt;
|sistemas operativos= &lt;br /&gt;
|idioma= &lt;br /&gt;
|licencia= &lt;br /&gt;
|premios=&lt;br /&gt;
|web= &lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt; &lt;br /&gt;
'''FirePHP''' es un complemento para hacer [[debug]] de aplicaciones [[PHP]], lo más rápido es sacar en la página el contenido de variables de [[PHP]], para ver sus valores directamente en la página [[Web]], por medio de instrucciones echo, print_r o similares. &lt;br /&gt;
== FirePHP-Firebug ==&lt;br /&gt;
Existe una posibilidad intermedia, no tan complicada de configurar como un [[debug]] con tu [[IDE]] de desarrollo (ni tan potente), pero más versátil y con mayores posibilidades que hacer un simple echo del valor de las variables, para verlo escrito en la página [[Web]]. Se trata de utilizar [[FirePHP]], un complemento para [[Firefox]], que además funciona como complemento de otra extensión muy útil del mencionado navegador llamada [[Firebug]]. &lt;br /&gt;
[[Firebug]] es una de esas extensiones que, cuando empiezas a usarla, se convierte en un ayudante imprescindible.&lt;br /&gt;
 &lt;br /&gt;
==Funcionamiento FirePHP==&lt;br /&gt;
El complemento [[FirePHP]] tiene la particularidad de enviar mensajes a la consola de [[Firebug]], sin que éstos aparezcan en la página. Los mensajes que podremos enviar serán simples log, con el contenido de cualquier elemento que necesites visualizar (como variables creadas en [[PHP]]), mensajes de error o warning. Como los mensajes no aparecen en la página, no molestan a la hora de visualizar el resultado de tus [[scripts PHP]] y además, en el caso que estés generando respuestas en [[XML]] o [[JSON]] (cuando trabajes por ejemplo con [[Ajax]]), estos log enviados a [[Firebug]] no interferirán en el correcto funcionamiento de la página. &lt;br /&gt;
[[FirePHP]] consigue este interesante comportamiento porque los contenidos que se envían a la consola viajan en las cabeceras del [[HTTP]], con lo que nadie los verá a no ser que examine las cabeceras del [[protocolo]]. La consola de [[Firebug]] los interpretará y los mostrará convenientemente al desarrollador. &lt;br /&gt;
Además, programando convenientemente esos mensajes de log, es muy fácil desactivarlos, para que un usuario que acceda a tu sitio en producción, no reciba contenidos de [[debug]], que pueden resultar sensibles. Debemos saber que, aunque los mensajes no se vean en la página, irán en las cabeceras del [[HTTP]] y por lo tanto estarán disponibles para quien sepa cómo mirarlos.&lt;br /&gt;
 &lt;br /&gt;
==Instalación FirePHP ==&lt;br /&gt;
Para que [[FirePHP]] funcione, tenemos que colocar unos archivos en el [[servidor]], con el código de las funciones que son necesarias para lanzar mensajes a la consola. &lt;br /&gt;
[[FirePHP]] dispone de unos códigos fuente para [[PHP]] (versiones 4 y 5), que tenemos que instalar en nuestro [[servidor]]. Esto es, simplemente, colocarlos en algún lugar del [[servidor]] para poder incluirlos con las típicas funciones que requiere o incluye de [[PHP]]. &lt;br /&gt;
Estos códigos, que ahora explicaremos cómo obtener tienen dos distribuciones, una para trabajo con [[programación procedimental]] y otra para trabajo con [[Programación orientada a objetos]]. Nosotros podemos utilizar una u otra forma, dependiendo de la que más sencilla nos parezca o la que más utilidad le encontremos. &lt;br /&gt;
Lógicamente, para que todo esto tenga sentido, primero hay que instalar [[FirePHP]] para comunicar con la consola de [[Firebug]] antes de poder enviar mensajes desde [[PHP]] a la consola de [[Firebug]], para ser interpretados y mostrados por [[FirePHP]], tenemos que cargar en nuestro [[servidor web]] unos archivos que tienen unas librerías o [[API]] para comunicar con la consola. Estos archivos con el código de las librerías se encuentran disponibles en la propia página de [[FirePHP]]. Debemos descargarlos e instalarlos en un directorio de nuestro servidor web [[PHP]]. &lt;br /&gt;
Si tenemos instalado [[PEAR]] u otro framework para [[PHP]] tenemos además otros métodos para incluir [[FirePHP]] en nuestras aplicaciones. &lt;br /&gt;
Estas librerías vienen en dos archivos que se llaman [[fb.php]] y [[FirePHP.class.php]] (que también tienen sus versiones para [[PHP 4]], con nombres [[fb.php4]] y [[FirePHP.class.php4]]). Las podemos colocar en cualquier sitio, con tal que sepamos dónde las hemos dejado, porque tendremos que incluirlas desde nuestros [[scripts PHP]] y para ello tendremos que conocer la ruta donde están localizadas. &lt;br /&gt;
La diferencia entre [[fb.php]] y [[FirePHP.class.php]] es que el archivo [[fb.php]] tiene código para poder accionar [[FirePHP]] por medio de funciones o procedimientos y [[FirePHP.class.php]] contiene una clase para poder hacer básicamente las mismas cosas, pero por medio de [[programación orientada a objetos]]. La explicación de los métodos de trabajo a partir de las clases contenida en [[FirePHP.class.php]], que es más útil y además ayudará a mantener el código de una manera más simple y en el futuro facilitará algunas tareas como ocultar los mensajes de [[debug]] cuando estemos en el [[servidor]] en producción. &lt;br /&gt;
Una vez guardados los archivos [[PHP]] para comunicar con la consola, los debemos incluir en nuestro sistema por medio de una sentencia como esta:&lt;br /&gt;
 &lt;br /&gt;
require_once('RUTA-DE-LOS-FICHEROS/FirePHP.class.php');&lt;br /&gt;
 &lt;br /&gt;
==FirePHP desde PHP==&lt;br /&gt;
Cómo utilizar el código [[PHP]] de [[FirePHP]] para mostrar mensajes de [[debug]], que podremos visualizar en la consola de [[Firebug]]. &lt;br /&gt;
Aquí  se muestra paso a paso cómo tenemos que hacer para usar [[FirePHP]] en nuestras aplicaciones y facilitar las tareas de depuración de errores en [[PHP]]. Aprenderemos a mostrar algunos mensajes de [[log]], sobre variables normales y sobre arrays. Además veremos cómo podemos ejecutar una instrucción para que los mensajes de [[debug]] no aparezcan en la consola, útil para aplicaciones en producción.&lt;br /&gt;
 &lt;br /&gt;
==Utilizar FirePHP para mostrar mensajes debug==&lt;br /&gt;
Primeramente tenemos [[FirePHP]] instalado en nuestro [[Firefox]] y tenemos los archivos [[PHP]] para poder lanzar mensajes a la [[consola]], podemos ver un sencillo [[script]] para ver de qué manera trabajar con estos sistemas. &lt;br /&gt;
Hacemos un archivo [[PHP]] que, al verlo en [[Firefox]], mostrará unos mensajes en la consola de [[Firebug]]. Será simple para que todo el mundo lo pueda entender:&lt;br /&gt;
 &lt;br /&gt;
A) Incluir el archivo de [[PHP]] con el código de [[FirePHP]]. &lt;br /&gt;
require_once('../FirePHPCore/FirePHP.class.php');&lt;br /&gt;
  &lt;br /&gt;
B) Ejecutar la función [[PHP]] ob_start(); para que la salida de [[PHP]] se almacene en un [[buffer]], hasta que se complete la página. Esto nos permitirá crear mensajes para la [[consola]] en cualquier momento del código [[PHP]]. Recordar que los mensajes de [[FirePHP]] viajan en las cabeceras del [[HTTP]] y si no se hace uso del [[buffer]] puede que ocurra que las cabeceras se hayan enviado, junto con el contenido [[HTML]] de la página, y que los mensajes no se visualicen. &lt;br /&gt;
ob_start();&lt;br /&gt;
&lt;br /&gt;
Nota: si la directiva de PHP.ini output_buffering  está activada, no necesitaríamos hacer el ob_start(). &lt;br /&gt;
&lt;br /&gt;
C) Instanciar un objeto de la clase [[FirePHP]], que utilizaremos para enviar mensajes a la [[consola]], por medio de sus métodos. &lt;br /&gt;
$mifirePHP = FirePHP::getInstance(true);&lt;br /&gt;
&lt;br /&gt;
D) Enviar mensajes de log a la [[consola]]. Ahora puedes crear variables [[PHP]] y mostrar sus contenidos de la siguiente manera: &lt;br /&gt;
$mivariable=2;&lt;br /&gt;
$mifirePHP-&amp;gt;log($mivariable, &amp;quot;Mensaje&amp;quot;);  &lt;br /&gt;
&lt;br /&gt;
Con este otro código se crearía un Array y se mostraría luego su contenido: &lt;br /&gt;
$miArray = array(&amp;quot;indice&amp;quot; =&amp;gt; &amp;quot;valor&amp;quot;, &amp;quot;otra cosa&amp;quot; =&amp;gt; &amp;quot;otro valor&amp;quot;);&lt;br /&gt;
$mifirePHP-&amp;gt;log($miArray, &amp;quot;Este es el contenido del Array miArray&amp;quot;);  &lt;br /&gt;
 &lt;br /&gt;
El resultado de mostrar esos valores aparecerá, como se decía, en la consola de [[Firebug]]. Pero ten en cuenta que tienes que habilitar las funcionalidades de &amp;quot;Consola&amp;quot; y &amp;quot;Red&amp;quot; dentro de [[Firebug]]. &lt;br /&gt;
Opcionalmente: Evitar que los mensajes aparezcan en la consola. &lt;br /&gt;
&lt;br /&gt;
Si estamos programando en nuestro sitio de desarrollo, no habrá problemas en que enviemos ciertas informaciones sensibles por la cabecera del [[HTTP]] hacia la consola de [[FirePHP]]. No obstante, en sitios Web en producción hay cuidar que no se envíe por la cabecera ninguna información sensible, que pueda afectar a la seguridad de las aplicaciones [[Web]] o a la privacidad de los usurarios que te visitan. &lt;br /&gt;
 &lt;br /&gt;
Si estamos programando con las clases (de [[programación orientada a objetos]]) de [[FirePHP]], existe un único método para conseguir esto. En concreto el método se llama [[setEnabled]] y tenemos que enviar como parámetro el valor false. &lt;br /&gt;
$mifirePHP-&amp;gt;setEnabled(false);  &lt;br /&gt;
 &lt;br /&gt;
Con esta sencilla instrucción conseguimos que, a partir del momento de ejecutarla, no se muestren mensajes en la [[consola]]. Podemos ponerla a continuación de la instanciación del objeto [[FirePHP]] para que no se muestre ningún mensaje en la página. Incluso podemos vincular esa instrucción a una comprobación sobre si un usuario administrador ha hecho [[login]], o algo parecido, que evitaría que los visitantes generales vieran mensajes, pero permitiría a los administradores recibirlos y poder depurar aplicaciones también en [[servidores]] de producción. &lt;br /&gt;
 &lt;br /&gt;
==Código de pág PHP que utiliza FirePHp==&lt;br /&gt;
El [[script PHP]] completo de las pruebas de [[FirePHP]] realizado en este artículo es:&lt;br /&gt;
&lt;br /&gt;
require_once('../FirePHPCore/FirePHP.class.php');&lt;br /&gt;
&lt;br /&gt;
ob_start();&lt;br /&gt;
&lt;br /&gt;
//instanciar un objeto de la clase FirePHP&lt;br /&gt;
&lt;br /&gt;
$mifirePHP = FirePHP::getInstance(true);&lt;br /&gt;
&lt;br /&gt;
//evito que se muestren los mensajes en la consola de firebug&lt;br /&gt;
&lt;br /&gt;
//$mifirePHP-&amp;gt;setEnabled(false);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puedo hacer lo que quiera en la página&lt;br /&gt;
&lt;br /&gt;
//puedo hacer lo que quiera tb en PHP...&lt;br /&gt;
&lt;br /&gt;
$mivariable=2;&lt;br /&gt;
&lt;br /&gt;
$mivariable*=389;&lt;br /&gt;
&lt;br /&gt;
$mifirePHP-&amp;gt;log($mivariable, &amp;quot;Mensaje&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
$miArray = array(&amp;quot;indice&amp;quot; =&amp;gt; &amp;quot;valor&amp;quot;, &amp;quot;otra cosa&amp;quot; =&amp;gt; &amp;quot;otro valor&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
$mifirePHP-&amp;gt;log($miArray, &amp;quot;Este es el contenido del Array miArray&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Fuentes==&lt;br /&gt;
* http://www.firephp.org&lt;br /&gt;
* Foro de programación [[FirePHP]] en español.&lt;br /&gt;
 &lt;br /&gt;
==Referencias==&lt;br /&gt;
* http://getfirebug.com &lt;br /&gt;
* http://images.sixrevisions.com&lt;br /&gt;
* http://www.genbetadev.com&lt;br /&gt;
* http://www.desarrolloweb.com &lt;br /&gt;
[[Category:Programación]][[Category:Informática]]&lt;br /&gt;
[[Category:Lenguajes_de_programación_orientada_a_objetos]]&lt;/div&gt;</summary>
		<author><name>Antonio jc.jiguani2</name></author>
		
	</entry>
</feed>