我目前正在尝试学习 Symfony2 并尝试对其进行设置。Symfony2 中有一个 framework.ide 设置,允许在 IDE 中打开控制器和操作。
我目前正在使用 PhpStorm 和 Remote Call。我已经想出了如何让它在 Linux 环境中工作,但是,在 Windows 中,由于 Windows 使用反斜杠(JavaScript 似乎逃脱了),这不想工作。
我当前的配置如下所示:
config_dev.yml
framework:
ide: 'javascript: var r = new XMLHttpRequest; r.open("get", "http://localhost:8091?message=%%f:%%l");r.send()'
这使得调试器的操作名称链接到:
javascript: var r = new XMLHttpRequest; r.open("get", "http://localhost:8091?message=C:\Users\Hosh\vhosts\symfony\src\Acme\DemoBundle\Controller\WelcomeController.php:9");r.send()
这很好,但是,JavaScript 似乎将文件路径视为:
javascript: var r = new XMLHttpRequest; r.open("get", "http://localhost:8091?message=C:UsersUservhostssymfonysrcAcmeDemoBundleControllerWelcomeController.php:9");r.send()
我当前的解决方案是覆盖模板WebProfileBundle:Collector:request.html.twig
并通过替换过滤器手动运行链接,以便:
7. <span class="sf-toolbar-info-class sf-toolbar-info-with-next-pointer">{{ collector.controller.class|abbr_class }}</span>
8. <span class="sf-toolbar-info-method" onclick="{% if link %}window.location='{{link}}';window.event.stopPropagation();return false;{% endif %}">
9. {{ collector.controller.method }}
10. </span>
变成:
7. <span class="sf-toolbar-info-class sf-toolbar-info-with-next-pointer">{{ collector.controller.class|abbr_class }}</span>
8. <span class="sf-toolbar-info-method" onclick="{% if link %}{{ link|replace({'\\': '/'}) }}{% endif %}">
9. {{ collector.controller.method }}
10. </span>
有没有更好的解决方案?