Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.752
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.
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.465
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');
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.752
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.
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.752
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');

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".
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.465
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".
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
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.752
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

¿Recomiendas algún IDE? Estoy a puro notepad.
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.465
netbeans, eclipse PDT o la más fácil: phpstorm.

Saludos.
 
Upvote 0

Amenadiel

Ille qui nos omnes servabit
Fundador
OVERLORD
REPORTERO
Se incorporó
15 Enero 2004
Mensajes
18.398
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
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
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.465
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

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.
 
Upvote 0

Amenadiel

Ille qui nos omnes servabit
Fundador
OVERLORD
REPORTERO
Se incorporó
15 Enero 2004
Mensajes
18.398
Todavía no logro que me guste phpstorm y me quedan 26 días de trial

Enviado desde mi HMA-L29 mediante Tapatalk
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.465
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
 
Upvote 0

Amenadiel

Ille qui nos omnes servabit
Fundador
OVERLORD
REPORTERO
Se incorporó
15 Enero 2004
Mensajes
18.398
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
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.465
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
 
Upvote 0

Amenadiel

Ille qui nos omnes servabit
Fundador
OVERLORD
REPORTERO
Se incorporó
15 Enero 2004
Mensajes
18.398
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
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.465
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.
 
Upvote 0

Amenadiel

Ille qui nos omnes servabit
Fundador
OVERLORD
REPORTERO
Se incorporó
15 Enero 2004
Mensajes
18.398
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
 
Upvote 0

Amenadiel

Ille qui nos omnes servabit
Fundador
OVERLORD
REPORTERO
Se incorporó
15 Enero 2004
Mensajes
18.398
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
 
Upvote 0
Subir