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 mycommandphp -d xdebug.profiler_enable=On artisan mycommandTambién traté de establecer
xdebug.remote_autostart=Onluegosudo service php5-fpm restartpero aún mis puntos de ruptura nunca son golpeados en PHPStorm
Dos cosas son importantes:
-
remote_connect_backno 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.1visto 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.logde 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, dondeyourservernamees 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