Debugger para PHP

Tema en 'Programación y Desarrollo' comenzado por Zuljin, 13 de Abril de 2018.

Tags:
Watchers:
This thread is being watched by 5 users.
  1. Zuljin

    Zuljin Fundador Miembro del Equipo Fundador ADMIN Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    8.443
    Me gusta recibidos:
    2.867
    Sigo en mi calvario de reescribir el sitio web de php 4.x a 5.4. Resolví el parseo de xml, la conexión a la base de datos pero ahora me salta un error en la entrega de resultado. Ya se pone tóxico y necesito debug para avanzar más rápido.

    ¿Existe una herramienta de debug para php que no sea poner banderas (echo) en el código? Ojalá que la herramienta sea gratuita porfa.
     
  2. unreal4u

    unreal4u I solve problems. Miembro del Equipo ADMIN Old School Tech-Admin

    Se incorporó:
    2 de Octubre de 2005
    Mensajes:
    11.687
    Me gusta recibidos:
    1.258
    xdebug, xhprof, revisar tu error_log, un buen IDE, Zend Debugger (no lo recomiendo a menos que trabajes con Zend Server y Zend Framework), etc.

    Todas gratuitas o incluidas en la licencia.

    Tb puedes imprimir a pantalla, es la solución más fea pero la más fácil:

    en tu código, agregar las siguientes líneas:
    Código:
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    
     
  3. Zuljin

    Zuljin Fundador Miembro del Equipo Fundador ADMIN Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    8.443
    Me gusta recibidos:
    2.867
    Ahondo en mi requerimiento.
    La necesidad es instalar algún bicho en mi equipo que sea capaz de hacer la traza, el paso a paso, en mi servidor de desarrollo remoto: un server con CentOS 7 y php 5.4. Ojalá me muestre por donde cresta va y el valor de las variables.
     
  4. Zuljin

    Zuljin Fundador Miembro del Equipo Fundador ADMIN Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    8.443
    Me gusta recibidos:
    2.867
    Ya estoy imprimiendo la pantalla pero ahora esta huea entró en un ciclo y no pillo exactamente dónde está la falla.

    El error_reporting ya lo tengo activado con salida al log. Ahí estoy siguiendo los errores, pero me hace falta un debug "paso a paso".
     
  5. unreal4u

    unreal4u I solve problems. Miembro del Equipo ADMIN Old School Tech-Admin

    Se incorporó:
    2 de Octubre de 2005
    Mensajes:
    11.687
    Me gusta recibidos:
    1.258
    Xdebug en ese caso y configurar la conexión remota. Tu IDE puede leer e interactuar con esto.

    No toi en un pc ahora así que sorry por los pocos detalles.


    Sent from my iPhone using Tapatalk
     
  6. Zuljin

    Zuljin Fundador Miembro del Equipo Fundador ADMIN Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    8.443
    Me gusta recibidos:
    2.867
    ¿Recomiendas algún IDE? Estoy a puro notepad.
     
  7. ranamaldita

    ranamaldita mueranse Old School

    Se incorporó:
    24 de Junio de 2003
    Mensajes:
    3.656
    Me gusta recibidos:
    311
  8. Zuljin

    Zuljin Fundador Miembro del Equipo Fundador ADMIN Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    8.443
    Me gusta recibidos:
    2.867
  9. unreal4u

    unreal4u I solve problems. Miembro del Equipo ADMIN Old School Tech-Admin

    Se incorporó:
    2 de Octubre de 2005
    Mensajes:
    11.687
    Me gusta recibidos:
    1.258
    netbeans, eclipse PDT o la más fácil: phpstorm.

    Saludos.
     
  10. _kmilo_

    _kmilo_ Vendo todo. xD

    Se incorporó:
    1 de Mayo de 2005
    Mensajes:
    853
    Me gusta recibidos:
    174
  11. Amenadiel

    Amenadiel Ille qui nos omnes servabit Fundador OVERLORD Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    18.254
    Me gusta recibidos:
    121
    Hay que activar xdebug de php fpm verdad? No el cli? El ide levanta un servidor de desarrollo o se puede usar, tal como uso ahora, NGINX y fastcgi_pass al puerto o sock de fpm?

    Enviado desde mi HMA-L29 mediante Tapatalk
     
  12. unreal4u

    unreal4u I solve problems. Miembro del Equipo ADMIN Old School Tech-Admin

    Se incorporó:
    2 de Octubre de 2005
    Mensajes:
    11.687
    Me gusta recibidos:
    1.258
    si quieres hacerle debugging a los requests que haces a través de la web, entonces sí, php-fpm ya que ése es el responsable (en case de fcgi) de hacer correr el motor. Si quieres también hacerle debugging a lo que corres a través de CLI, entonces también deberás activarlo para CLI. Me parece mucho que todos los IDE ocupan el puerto 9000 (o 9001 iirc) para comunicarse con xdebug. Para la comunicación entre php-fpm y nginx, si están en la misma máquina, socket es más rápido que puerto, lo cual es especialmente útil en caso de tener múltiples versiones de php en la misma máquina.

    No puedo hablar por otras IDE's, pero al menos PHPStorm no levanta un servidor de desarrollo, aunque sí ejecuta PHP en el fondo más que nada para hacer análisis de sintaxis y esas cosas, pero no es algo accesible o ejecutable por el usuario.

    Saludos.
     
  13. Amenadiel

    Amenadiel Ille qui nos omnes servabit Fundador OVERLORD Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    18.254
    Me gusta recibidos:
    121
    Todavía no logro que me guste phpstorm y me quedan 26 días de trial

    Enviado desde mi HMA-L29 mediante Tapatalk
     
  14. unreal4u

    unreal4u I solve problems. Miembro del Equipo ADMIN Old School Tech-Admin

    Se incorporó:
    2 de Octubre de 2005
    Mensajes:
    11.687
    Me gusta recibidos:
    1.258
    No es fácil cambiarse de IDE pq mal que mal el hombre (y mujer) es animal de costumbre.

    Qué IDE ocupabas antes y con qué te topas ahora que no te logras acostumbrar?

    Siempre puedes ocupar la EAP que es un preview de la sgte versión estable, esa siempre es gratuita, de esa forma puedes probar por más tiempo antes de decidirte.

    Saludos.


    Sent from my iPhone using Tapatalk
     
  15. Amenadiel

    Amenadiel Ille qui nos omnes servabit Fundador OVERLORD Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    18.254
    Me gusta recibidos:
    121
    No sabría decir que es lo que no me gusta

    Diría que si bien en Android estoy acostumbrado a programar en Android Studio que es full jetbrains, en php y JS hay un lag. Pequeño pero no nulo. Lo mismo que me pasa con VStudio y Atom.
    Ese medio segundo que piensa x 300 pestañas...


    Antes de sublime usaba Netbeans pero de eso han pasado 8 años.

    Enviado desde mi HMA-L29 mediante Tapatalk
     
  16. unreal4u

    unreal4u I solve problems. Miembro del Equipo ADMIN Old School Tech-Admin

    Se incorporó:
    2 de Octubre de 2005
    Mensajes:
    11.687
    Me gusta recibidos:
    1.258
    Qué tan grande es el proyecto en que estás trabajando? Qué parámetros de memoria pusiste y cuánto está ocupando?


    Sent from my iPhone using Tapatalk
     
  17. Amenadiel

    Amenadiel Ille qui nos omnes servabit Fundador OVERLORD Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    18.254
    Me gusta recibidos:
    121
    No seguí probando phpstorm, pero como estoy trabajando harto con laravel a veces necesito bucear en las definiciones del contenedor de deoendencias, los Singleton's misteriosos que no están documentados y las Facade.

    Para eso tengo una ventana abierta de VSCode, y su nivel de integración con PHP es de primer nivel. Sin embargo cada vez que la ventana pasa a primer plano tiene que pensar un momento antes de resaltar la sintaxis y hacer todo clickeable. Porque tienes claro que con las type definitions de PHP 7.4 Ahora hasta las sumas le ponen hints.

    En fin, VStudio tiene soporte con xdebug pero no he aprendido a usarlo. De hecho ocupo un script en bash que lo desactiva antes de correr cualquier cosa CLI, como composer, artisan, symphony-var-dumper, phpunit, phpstan, psalm (una maravilla) phpmd, phpcsfixer y en resumen todos los putos plugins que encontré.

    Voy a escribir un artículo sobre las herramientas para debuggear php fuera del IDE, como el mismo var dumper, kint (otra maravilla)

    Enviado desde mi HMA-L29 mediante Tapatalk
     
  18. unreal4u

    unreal4u I solve problems. Miembro del Equipo ADMIN Old School Tech-Admin

    Se incorporó:
    2 de Octubre de 2005
    Mensajes:
    11.687
    Me gusta recibidos:
    1.258
    uff no si herramientas hay por montón, una que me gusta mucho es un semi-profiler que se puede ocupar en producción: phpspy https://github.com/adsr/phpspy que además te puede generar gráficos.

    Yo por lo general me limito a:
    • PHPStorm
    • PHP Inspections EA extended: https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended- (Plugin para phpstorm que agrega muchas inspecciones que tienen que ver con la calidad del código y formateo del mismo)
    • Symfony Plugin: https://plugins.jetbrains.com/plugin/7219-symfony-support (Para aquellos proyectos que ocupan Symfony como framework)
    • Herramientas externas: phpunit, xdebug, phpstan y phpcsfixer son los primeros que se me vienen a la cabeza. En proyectos open-source también ocupo scrutinizer, es un buen popurí de todas estas herramientas anteriores, aunque quiero investigar Github Actions más a fondo para ver si puedo prescindir de un servicio externo.

    Psalm no lo he ocupado más que nada por falta de tiempo para investigarlo. phpmd creo que estaba muerto (y gran parte lo cubre el PHP Inspections EA extended) pero creo que lo revivieron hace poco, no he echado un nuevo vistazo todavía.

    PhpDocumentor igual estaba muerto, pero ahora están trabajando activamente de nuevo en ella, así que para la v3 se espera que vengan muchos nuevos estándares.

    En cuanto a estándares, PSR-4 y PSR-2 (si es posible ocupo el más nuevo PSR-12) son los que actualmente ocupo.

    Saludos.
     
  19. Amenadiel

    Amenadiel Ille qui nos omnes servabit Fundador OVERLORD Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    18.254
    Me gusta recibidos:
    121
    Hace unos días logré hacer funcionar xdebug en sublime. Después de eso funcionó en VStudio. Me parece que la configuración que sugiere en el plugin de sublime estaba buena y la otra incompleta.

    De las herramientas pagadas bkackfire.io sirve para diagnosticar temas de rendimiento, no recuerdo que sirviera para debug.

    P

    Probaré phpspy.

    Enviado desde mi HMA-L29 mediante Tapatalk
     
  20. Amenadiel

    Amenadiel Ille qui nos omnes servabit Fundador OVERLORD Old School

    Se incorporó:
    15 de Enero de 2004
    Mensajes:
    18.254
    Me gusta recibidos:
    121
    Phpdocumentor necesita unos componentes de symfony que datan del 2017. Damn.

    Phpspy se ve interesante pero no logro obtener nada muy revelador.

    Le sigo poniendo fichas a xdebug, logré aislar una excepción que era silenciada sin dejar rastro.

    A todo esto, está muy bien el "go to definition" en php para VStudio, pero en todo lo demás está muy atrás de sublime. La inferencia de tipos para completar los docblocks es muy superior en sublime.

    Creo que le daré otra chance a webstorm aunque es un tanque a pedales y Federico más encima

    Enviado desde mi HMA-L29 mediante Tapatalk
     

Comparte esta página

Cargando...