5

我目前正在尝试学习 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>

有没有更好的解决方案?

4

1 回答 1

0

有一种方法,您甚至不需要远程呼叫插件。您可以在 Windows 注册表中注册自定义协议处理程序并编辑 framework.ide 以使用该处理程序。

看到这个:https ://github.com/aik099/PhpStormProtocol

于 2013-12-19T10:37:46.120 回答