如何从PhpStorm运行Symfony Web服务器

Jan*_*sky 6 php symfony phpstorm

我可以从PhpStorm运行Symfony Web服务器吗?我知道我可以从命令行运行它:

php app/console server:run --env=dev
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有任何方法可以配置PhpStorm为我做这件事.

fyr*_*rye 14

  • 点击 Run -> Edit Configurations
  • 在对话框中单击+(添加)
  • PHP Script从下拉列表中选择
  • 在名称字段类型中 Symfony Web-Server
  • 在Script字段中,将路径放到bin/console 例如:/path/to/symfony/bin/console
  • (可选)取消选中Activate Tool Window以防止它在启动时弹出
  • 在参数字段类型中 server:run
  • 单击"确定"保存并关闭对话框

Symfony Web服务器脚本

这将为您提供一个Run Symfony Web-ServerDebug Symfony Web-Server选项来选择.要调试正在运行的服务器,必须告诉PHPStorm在运行服务器脚本之前侦听调试连接.要在您的配置中配置调试,请Settings -> Languages & Frameworks -> PHP -> Servers确保已127.0.0.1:8000创建,禁用Path Mapping并将Xdebug设置为调试器.(可选)在Debug -> XDebug设置的第一行禁用停止.

PHP服务器设置

现在,您可以通过在"运行配置"下拉列表中选择服务器并单击"播放"按钮来启动服务器.务必先告诉PHPStorm侦听调试连接.

调试栏

或点击Run -> Symfony Web-Server.

添加断点,然后将浏览器启动到受断点影响的路由,PHPStorm应捕获调试会话并根据需要中断.

调试输出

如果首先调试失败,请关闭所有正在运行的PHPStorm服务,并尝试运行Debug Symfony Web-Server(确保PHPStorm正在侦听调试连接),然后重新启动浏览器.由于某些原因,Xdebug可能不会初始化,但这种行为是零星的,难以一致地重现.在初始化之后,您可以在启用侦听时运行非调试Web服务器,并且它似乎正常工作.

特别注意,运行Debug Symfony Web-Serverwill只会监视bin/console脚本.这是因为Symfony服务器php进程是分叉的,调试会话将继续监视父进程.因此,在调试Web服务器时,必须告诉PHPStorm侦听调试连接.