Una de las “limitantes” de trabajar con PHP es el no poder hacer un debug a nuestro código como en C, C++, Java, VS, C# en fin entre otros muchos otros lenguajes. ya que al finalizar de leer este post podrás establecer breakpoints, y conocer el valor de las variables en determinado momento de la ejecución de nuestro script o aplicación.
Requisitos
- WamServer
- PHP 5.3 o superior
- Libreria XDebuger para php
- Apache 2.2 o superior.
- NetBeans para PHP
- Algunos minutos.
Pasos
Si tienes instalado algún otro servidor de apache te recomiendo que pares el proceso , la ventaja de wamServer es que por default no inicia ningún servicio por lo que antes de arrancar Apache debemos comprobar que el ya instalado este detenido (en mi caso tengo appServ).
Una vez que iniciemos WamServer, nos creara un icono junto al reloj.
Habilitamos las liberáis de Xdebuger de php (Es importante seleccionarlas antes de iniciar el servidor), es probable que al momento de darle clic a las opciones no nos muestre la palomita si no hasta que se inicie apache.
Una ves echo esto ahora si iniciamos nuestro servidor apache.
Si en la configuración de nuestro PHP aparece la librería Xdebuger indica que todo esta listo para el debuger.
En netBeans creamos un nuevo proyecto de php
Es importamte guardar nuestro proyecto en nuestra carpeta del servidor (En mi caso C:\www) para wam la ruta es C:\wamp\www.
Y Finalizamos.
Antes de iniciar nuestro debug debemos de habilitar algunas ventanas como:
- Variables: Conocer el valor de nuestra variables en tiempo de ejecución
- Breakpoints: Conocer los puntos establecidos donde queremos que se detenga nuestra aplicación.
Guardamos he iniciamos nuestro debug
Probamos un for sencillo.
Observar que he puesto dos breakPoints (línea 7 y 9).
Como vemos en este ciclo la variable $i vale 3.
Función de los botones parar debugear:
- Detiene el debug
- Nos lleva hasta el próximo breakpoint
- Entra a un función o ciclo, en nuestro caso entraría al for (Claro si no tuvieramos breakpoint en la linea 9).
- Pasa a la siguiente línea de código, si es una función simplemente la ejecuta sin entrar, en nuestro caso ejecuta un siclo del for cada vez que se presiona.
- Si nos encontramos en for o función nos lleva a la línea desde el cual fue llamado (Si es que aplicamos la opción )
Si algo sale mal, NetBeans nos mostrara una ventana como la siguiente.
¿Por que WampServer?
WamServer ya incorpora por default la libreria xDebuger a diferencia de AppServ, aun que también podemos agregar la librería y configurarla y nos debería de funcionar (Post pendiente).
¿Por que NetBeans?
NetBeans no es el único IDE con el que podemos hacer un debug, pero lo elegí por:
- Es fácil de usar el debug (no hay que configurar nada).
- En mi trabajo me paso todo el día con sprint tool suit (hijo de eclipse) así que ya no quería verlo mas jeje.
Pero se puede obtener lo mismo con Eclipse para php, Zend studio, y algunos otros.
y bueno esta elección tuvo que ver con La importancia de trabajar con un IDE.
Espero que es haya servido saludos.