我目前正在尝试学习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()'
Run Code Online (Sandbox Code Playgroud)
这使调试器的操作名称链接到:
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()
Run Code Online (Sandbox Code Playgroud)
这很好,但是,JavaScript似乎将文件路径视为:
javascript: var r = new XMLHttpRequest; r.open("get", "http://localhost:8091?message=C:UsersUservhostssymfonysrcAcmeDemoBundleControllerWelcomeController.php:9");r.send()
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案是覆盖模板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>
Run Code Online (Sandbox Code Playgroud)
变为:
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>
Run Code Online (Sandbox Code Playgroud)
有没有更好的解决方案呢?
有一种方法,您甚至不需要远程调用插件。您可以在 Windows 注册表中注册自定义协议处理程序并编辑 Framework.ide 以使用该处理程序。
请参阅: https: //github.com/aik099/PhpStormProtocol