在 Laravel 7.x 中,我曾经通过将 eval(\Psy\sh());
放在代码中来进行交互式调试。
升级到 Laravel 8 后。它似乎不再工作了。
在 Laravel 8 中还有其他方法可以进行交互式调试吗?
最佳答案
我还没有找到合适的解决方案。所以,问题是 here 。 artisan serve
的新方法是创建一个进程,当您尝试使用 Psy
时,它会创建一个新进程。
(standard input):198: 434 ?? 0:11.07 /usr/local/opt/php/sbin/php-fpm --nodaemonize
(standard input):406:80139 ?? 0:00.00 /usr/local/opt/php/sbin/php-fpm --nodaemonize
(standard input):407:80214 ?? 0:00.00 /usr/local/opt/php/sbin/php-fpm --nodaemonize
(standard input):419:79506 ttys000 0:13.80 nvim app/Http/Controllers/UsersController.php
(standard input):422:80288 ttys001 0:00.19 php artisan serve
(standard input):423:80292 ttys001 0:02.66 /usr/local/Cellar/php/8.0.1/bin/php -S 127.0.0.1:8000 /server.php
(standard input):424:80387 ttys001 0:00.00 (php)
(standard input):425:80436 ttys001 0:00.00 (php)
最后两个 PID 是我尝试运行的两个 Psy。
你可以看到我 fork 了 symfony
并将值更改为 true
。
这将使您再次像以前一样工作。要退出进程,CTRL+D
。
如果版本低,可以看看这个one
但是,请注意这可能是只读环境中的一个问题。
关于php - Laravel 8 交互式调试与 Psy shell 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64020180/