如何从PhpStorm运行Symfony Web服务器

时间:2017-08-05 12:39:56

标签: php symfony phpstorm

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

private void createPdf() throws IOException {
    PDDocument doc = new PDDocument();
    PDPage page = new PDPage();
    doc.addPage(new PDPage());

    PDPageContentStream content = new PDPageContentStream(doc, page);

    content.beginText();
    content.setFont(PDType1Font.HELVETICA, 26);
    content.showText("Example Text");
    content.endText();

    content.close();

    doc.save("report.pdf");
    doc.close();
}

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

2 个答案:

答案 0 :(得分:11)

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

Symfony Web-Server Script

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

PHP Server Settings

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

Debug bar

或点击Run -> Symfony Web-Server

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

debug output

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

  

特别说明,运行Debug Symfony Web-Server只会监控   bin / console脚本。这是因为Symfony服务器的php进程   是分叉的,调试会话将继续监视父级   处理。因此,您必须告诉PHPStorm监听调试连接   调试Web服务器时。

答案 1 :(得分:1)

要在Windows上设置Symfony CLI,可以使用Bash模板:

  1. 点击Run -> Edit Configurations
  2. 在对话框中单击+(添加)
  3. 从下拉列表中选择Bash
  4. 在名称字段中输入Symfony server
  5. 在“脚本”字段中,输入serve
  6. 在“解释器路径”字段中,将路径放入命令控制台,例如:C:\Windows\System32\cmd.exe
  7. 在“解释器选项”字段中,输入/k "symfony"
  8. 在“程序参数”字段中,输入--no-tls

单击“确定”保存并关闭对话框

Edit Configurations dialog box

现在您可以从顶部面板启动和停止Symfony服务器:

Run Server