Windows 10 上的 Ubuntu 20.04.3 LTS -> https://www.microsoft.com/store/productId/9NBLGGH4MSV6
PhpStorm 2022.1 内部版本 #PS-221.5080.224,建于 2022 年 4 月 13 日
我正在尝试在 PhpStorm 的“数据库”选项卡中导出 PostgreSQL 数据库。
要执行导出,我右键单击列表中的数据库,然后单击“使用‘pg_dump’导出”选项。这将打开“导出”窗口,其中包含所有选项和命令预览:
在窗口内部,我收到错误消息“可执行文件的路径错误”,即使 pg_dump 文件存在于给定路径中/usr/bin/pg_dump。这阻止我执行导出。
我尝试在另一个目录中手动安装 pg_dump 并在 PhpStorm 导出窗口中选择它,但它仍然无法检测到可执行文件。可执行文件本身运行良好。
我已经从brew 安装了 PHP,它在 VSCode 中运行得很好,但在 PhpStorm 中我无法配置解释器来调试我的 PHP 代码。在配置文件中,显示“PHP未安装”并带有红色图标,可执行路径为空。
我只是想调试代码,而不是网页,所以现在不需要 Apache 服务器或其他服务器。
在终端上执行时php -v,我得到:
PHP 8.0.17 (cli) (built: Apr 5 2022 22:43:04) ( NTS ) Copyright (c)
The PHP Group Zend Engine v4.0.17, Copyright (c) Zend Technologies
with Zend OPcache v8.0.17, Copyright (c), by Zend Technologies
Run Code Online (Sandbox Code Playgroud)
这告诉我安装正确。
我正在尝试通过 PhpStorm (v2022.3.2) 使用 Xdebug (v3) 从 Docker 容器内部调试 PHPUnit 测试方法。
Xdebug 已正确设置,PhpStorm 中的服务器也是如此。
事实上,如果我从命令行运行测试,Xdebug 将在断点处停止:
XDEBUG_SESSION=1 PHP_IDE_CONFIG="serverName=myapp.localhost" vendor/bin/phpunit --testdox --filter testProfileUpdate
Run Code Online (Sandbox Code Playgroud)
如果我单击测试方法左侧的“bug”图标来调试测试,则会收到以下错误:
未建立连接。可能“xdebug.remote_host=host.docker.internal”不正确。更改“xdebug.remote_host”。
查看PhpStorm 执行的调试测试方法的命令,我看到的是:
[docker://myapp:latest/]:php -dxdebug.mode=debug -dxdebug.client_port=9000 -dxdebug.client_host=host.docker.internal /opt/project/vendor/phpunit/phpunit/phpunit --configuration /opt/project/phpunit.xml --filter "/(ProfileTest::testProfileUpdate)( .*)?$/" --test-suffix ProfileTest.php /opt/project/tests --teamcity
Run Code Online (Sandbox Code Playgroud)
我还尝试配置另外两个标志:
-dxdebug.idekey="serverName=myapp.localhost"-dxdebug.session=1结果命令是这样的:
[docker://myapp:latest/]:php -dxdebug.mode=debug -dxdebug.client_port=9000 -dxdebug.client_host=host.docker.internal -dxdebug.idekey="serverName=myapp.localhost" -dxdebug.session=1 /opt/project/vendor/phpunit/phpunit/phpunit --configuration /opt/project/phpunit.xml --filter "/(ProfileTest::testProfileUpdate)( .*)?$/" --test-suffix ProfileTest.php /opt/project/tests --teamcity
Run Code Online (Sandbox Code Playgroud)
同样使用此配置,Xdebug 不会启动并且断点将被忽略(并且会弹出错误消息)。
我尝试禁用 PhpStorm 自动传递的参数,转到“设置”>“PHP”>“调试”。
然后,在“高级设置”部分中,我取消标记了“通过命令行传递所需的配置选项”选项。
现在,生成的命令是这样的:
[docker://myapp:latest/]:php /opt/project/vendor/phpunit/phpunit/phpunit --configuration /opt/project/phpunit.xml --filter …Run Code Online (Sandbox Code Playgroud) 如何防止调试器(在这种情况下为Firebug或PhpStorm)从jQuery及其插件源代码中跳出来,只是跨过我们自己的代码?
PhpStorm可以使用Reformat Code命令为特定语言应用代码样式规则.PhpStorm还可以识别嵌入在另一种语言文件中的语言(在PhpStorm中称为"语言注入").因此,我希望语言在使用语言的任何地方都受其代码风格规则的约束 - 无论是嵌入还是在自己的文件中.
我发现这对于html文件中的css/js是预期的,但不适用于PHP文件中的语言注入.PhpStorm将识别heredoc中的css,并将html识别为heredoc以及单引号和双引号字符串 - 但重新格式化在任何这些情况下都不起作用.
如果没有使用中间文件重新格式化代码,我怎样才能让PhpStorm重新格式化这些代码段?我正在使用PhpStorm 6.0.3 for Mac.
他们的文件说明:
PhpStorm支持完整的编码协助:
- HTML或XML文件中的CSS和JavaScript.
- CSS,JavaScript和SQL之外的PHP代码块和PHP字符串文字里.
第二子弹好像只对了一半,因为CSS/JS/SQL被识别,但不进行PHP字符串文字里面的代码风格.注入的html没有指定; 但PhpStorm识别语言注入和应用代码样式任意选择能力之间,全部为格式嵌入式语言的作品似乎在那里.我错过了什么?
有没有办法让PHPStorm将语法高亮显示在XML文件中的标记内的PHP代码中?
我正在开发一个OpenCart项目,我正在使用Vqmod,这要求我在XML文件中编写PHP代码.例如:
<operation>
<search position="replace"><![CDATA[
<?php echo "123"; ?>
]]></search>
<add><![CDATA[
<?php echo "xyz"; ?>
]]></add>
</operation>
Run Code Online (Sandbox Code Playgroud) 我不知道为什么我的filewatcher没有转换某些scss文件.我想重命名已经存在的文件以将它们用作部分文件.这对大多数人都很好,但我无法重命名所有人.当我尝试使用"refactor-> rename"时,有一个警告说文件将被另一个脚本使用,但绝对不是这样.我无法在phpStorm中重命名它们,所以我手动将它们重命名为目录.这工作但现在不再创建css文件了.我试图同步,但没有帮助.我的设置似乎是正确的(见图).以前任何人都有同样的问题并且知道解决方案吗?
我有关于在Php Storm中结束foreach行的问题(cake php 2.4.6)
这是我在ctp文件中的代码:
<h2>List Users</h2>
<table>
<tr>
<td>Name:</td>
<td>Password:</td>
</tr>
<?php foreach ($users as $user); ?>
<tr>
<td><?php echo $this->$user['User']['username'];?> </td>
<td><?php echo $this->$user['User']['password'];?></td>
</tr>
<?php endforeach ?>
</table>
Run Code Online (Sandbox Code Playgroud)
在这一行我有错误:
<?php endforeach ?>
Run Code Online (Sandbox Code Playgroud)
(期待声明)
这有什么问题?
我通过puphpet.com生成一个vagrantbox(Ubuntu Trusty 14.04,nginx,php5.5,mysql,redis,(..)) - 这很好用.
在我的Mac上我只需要切换这个小图标,如下图所示在phpstorm中.没有别的,我可以直接开始设置我的断点,它的工作原理.VM或phpstorm中没有进一步的xdebug设置.

我的问题是,我无法在流浪的windows(7)环境中进行设置.我用谷歌搜索并尝试了几个教程 - 但它仍然无法正常工作.
Windows环境的任何tipps?这是我的puphpet config.yaml https://gist.github.com/wiesson/2fb2e8ebfef7f8d4e800
这可能与防火墙有关吗?
这可能是一个奇怪的问题,但在我们所有的系统中,我们使用一个加载器类来获取类:
$Class = core::load('ClassName'); //returns an instance of the class ClassName
Run Code Online (Sandbox Code Playgroud)
这可能不是最好的方法,但正如我所说,它一直在这里,所以改变它将是一件大事.除此之外它对我们来说也很完美.唯一的问题是PHPStorm不承认它$Class是一个实例ClassName.有没有办法在php中为这个演员做一些similair?
$Class = (ClassName)core::load('ClassName');
Run Code Online (Sandbox Code Playgroud)