composer-php - 将 xdebug 与 drush 命令一起使用

标签 composer-php xdebug drush ddev

我有两个 Drupal 代码库。首先,我可以通过浏览器和 drush 命令命中特定断点。第二,我只能通过浏览器命中断点。 drush 命令成功完成,没有命中断点。我找不到这两种安装之间任何有意义的区别。

Windows 10 家庭版上的本地开发
Docker工具箱
DDEV v1.14.2
Composer 版本1.10.5
IDE是VSCode,两者的launch.json文件是相同的
Drush 启动器安装

好的一点:
c:...\d8-04-28>ddev 执行 drush 状态
Drupal版本:8.8.5
站点 URI:https://d8-04-28.ddev.site
数据库驱动:mysql
数据库主机名:db
数据库端口:3306
数据库用户名:db
数据库名称:数据库
数据库:已连接
Drupal Bootstrap :成功
默认主题:bartik
管理主题:七
PHP 二进制文件:/usr/bin/php7.3
PHP 配置:/etc/php/7.3/cli/php.ini
PHP 操作系统:Linux
Drush脚本:/var/www/html/vendor/drush/drush/drush
Drush版本:10.2.2
鼓风温度:/tmp
Drush 配置:/var/www/html/vendor/drush/drush/drush.yml
/var/www/html/drush/drush.yml
安装配置文件:标准
Drupal根目录:/var/www/html/web
站点路径:sites/default
文件,公共(public):sites/default/files
文件,临时:/tmp

坏的
c:...\d8-06-08>ddev 执行 drush 状态
Drupal版本:8.8.5
站点 URI:https://d8-06-08.ddev.site
数据库驱动:mysql
数据库主机名:db
数据库端口:3306
数据库用户名:db
数据库名称:数据库
数据库:已连接
Drupal Bootstrap :成功
默认主题:bartik
管理主题:七
PHP 二进制文件:/usr/bin/php7.3
PHP 配置:/etc/php/7.3/cli/php.ini
PHP 操作系统:Linux
Drush脚本:/usr/local/bin/drush
Drush版本:10.2.2
鼓风温度:/tmp
Drush 配置:/var/www/html/vendor/drush/drush/drush.yml
/var/www/html/drush/drush.yml
安装配置文件:标准
Drupal根目录:/var/www/html/web
站点路径:sites/default
文件,公共(public):sites/default/files
文件,临时:/tmp

仅就坏处而言,在 ddev 中打开 xdebug 后,drush status 中的 PHP 配置行更改为:
PHP 配置:/tmp/bApEy0

我很确定我的调试问题与 drush 状态下的 drush 脚本行有关,但我找不到任何影响该行的更改。

有什么想法可以指引我正确的方向吗?

最佳答案

我注意到第一个显示“Drush 脚本:/var/www/html/vendor/drush/drush/drush”,第二个显示“Drush 脚本:/usr/local/bin/drush”。但在容器内部,/usr/local/bin/drush 是“drush 启动器”。因此,这种情况的发生方式肯定存在差异。

  • 调试 drush(或任何命令行脚本)时,尽可能以最简单的方式执行它,即在容器内执行,因此 ddev ssh 然后运行 ​​drush。
  • 但是要具体说明您正在运行的内容,不要在容器中使用 drush 启动器,而是通过运行/var/www/html/vendor/bin/drush 来运行站点安装的 drush - 这样就不会出现“t 额外的脚本层运行额外的 drush 层。
  • 与主机系统上的 drush 或 drush 启动器无关,因为一切都发生在容器内。
  • 请记住在调试之前ddev xdebug on
  • 请查看文档中的“PHPStorm 和命令行调试”:https://ddev.readthedocs.io/en/latest/users/step-debugging/#step-debugging-with-ddev-and-xdebug还有 Matt Glaman 关于 xdebug over the command line 的精彩博客

关于composer-php - 将 xdebug 与 drush 命令一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62372454/

相关文章:

composer-php - 通过composer安装yii2-braintree的问题

macos - 升级到 OS X Mavericks 后 Drush 坏了

drupal - 使用 Drush 运行单独的 cron 作业

php - 使用 composer : "Vendor libraries must be installed" 后 Symfony 2.6 错误

php - 如何将无脂肪框架自动加载与 Composer 兼容的库结合使用

linux - laravel 4 关于新安装的建议

php - xdebug 是否会以任何方式影响 PHP 语法(而不是其行为)?

php - 无法在我的 ubuntu 上进行 Xdebug var_dump 格式化工作

php - XDebug 未加载到 PHP(Vista、Apache 模块)中

drupal - 是否可以使用 Drush 更改用户的 Drupal 密码?