snippets - depurando laravel artesano de PHPStorm con homestead
phpstorm ide helper laravel (2)
O, si todo eso es demasiado complicado o no funciona, puede activar su comando artesanal a través de una url (ruta) utilizando
Artisan::call(''whatever:command'');
Configuré Laravel Homestead. Luego configuré homestead xdebug.ini y PHPStorm para que funcione la depuración.
Aquí está mi xdebug.ini dentro de la casa
zend_extension=xdebug.so
xdebug.remote_autostart = on
xdebug.remote_enable = on
xdebug.remote_connect_back = on
xdebug.remote_port = 9000
xdebug.idekey = "vagrant"
Para iniciar una sesión de depuración, los pasos que sigo son
- En PHPStorm -> Comenzar a escuchar las conexiones
- En PHPStorm establece un punto de interrupción
- En mi navegador -> Usar XDebug Chrome Helper O agregar a mi URL? XDEBUG_SESSION_START =
- Cargar la página
Esto funciona perfectamente Mi problema es que cuando estoy dentro de la línea de comandos de Homestead y ejecuto un comando de php artisan
no logro que llegue a mis puntos de interrupción.
Lo que he intentado
XDEBUG_CONFIG="idekey=PHPSTORM" PHP_IDE_CONFIG="serverName=server_name" php -dxdebug.remote_host="127.0.0.1" artisan mycommand
php -d xdebug.profiler_enable=On artisan mycommand
También traté de establecer
xdebug.remote_autostart=On
luegosudo service php5-fpm restart
pero aún mis puntos de ruptura nunca son golpeados en PHPStorm
Dos cosas son importantes:
-
remote_connect_back
no puede funcionar en el caso CLI porque Xdebug no puede detectar la dirección IP remota cuando estás en la consola - Al usar Homestead / VirtualBox en la configuración de red NAT, su máquina de desarrollo (que está ejecutando PHPStorm) no tiene el IP
127.0.0.1
visto desde el interior de la máquina virtual. En cambio, generalmente tiene una IP como10.0.2.2
. Para averiguar la IP correcta, eche un vistazo alaccess.log
de Apache,
Lo siguiente funcionó para mí:
php -dxdebug.remote_autostart=on -dxdebug.remote_connect_back=off
-dxdebug.remote_host=10.0.2.2 artisan
- editar Si sus puntos de interrupción no son alcanzados, debe configurar las asignaciones de carpeta correctamente (ya que su ruta en el IDE es diferente de la que ve el servidor web:
export PHP_IDE_CONFIG="serverName=yourservername"
en su VM, dondeyourservername
es lo que configuró en la captura de pantalla bajo "nombre"Agregue una configuración de depuración remota Php con una clave IDE y el servidor configurado anteriormente
Y agregue su clave IDE y el remote_host a la XDEBUG-CONFIG de la VM
export XDEBUG_CONFIG="idekey=artisan remote_host=10.0.2.2"
Referencias: http://randyfay.com/content/remote-command-line-debugging-phpstorm-phpdrupal-including-drush