如何在调试期间保持源和构建文件夹同步?

How to keep source and build folders in sync during debugging?

最近,更新了一个 PHP 项目以使用源文件夹和构建文件夹。在从 Git 存储库中提取 'src' 文件夹和项目配置文件后,我们使用 Gulp 将项目从 'src' 文件夹构建到 'build' 文件夹.

project_root
  |
  ├── src
  | 
  ├── build
  |
  └── {project configuration files}

前端和后端开发人员目前 运行 我们已设置 'gulp watch' 以保持我们的 'src' 和 'build' 文件夹同步。

我们遇到的最大烦恼之一是在浏览器中调试我们的项目时,我们经常打开报告错误的有问题的文件并修改代码直到它在浏览器中工作。然而,比我想数的更多次,我们在调试时对 'build' 文件夹中的文件进行更改,然后我们必须手动在 'src' 文件夹中进行更改(这通常是一开始被忽略了)。

有什么方法可以解决这个工作流程问题吗?

决斗观察者接近

我考虑制作两个文件观察器来分别检测 'build' 和 'src' 文件夹中的更改。当任何一个 watch 检测到变化时,关闭其他文件夹 watcher,处理更改的文件并同步另一个文件夹,然后重新打开另一个文件夹的 watcher。

(这似乎是大锤方法。)

IDE 方法

我们 PHPStorm 和 Sublime Text 3 取决于开发者。在 Sublime Text 中,我只是从项目中排除了 'build' 文件夹,这样我就不会意外地默认打开它。 (但是,我在调试 PHP 时不小心打开了 'build' 文件夹文件。)

其他

也许我们处理项目结构的方式通常需要改进。前端和后端开发通常是协同完成的。有什么建议吗?

在发布这个问题后,我疯狂地挥舞着手臂几个小时后,我找到了我自己的问题的答案。

事实证明,处理此问题的最佳方法是使用 IDE 方法 并为您的项目创建路径映射:

PHP风暴(documentation)

  • 设置 » PHP » 服务器
    • 检查 'use path mappings' 选择。
    • 在我们的例子中,我们将 '../src' 文件夹映射到 '../build'

带有 'Xdebug Client' 包的 Sublime Text

  • 首选项 » 程序包设置 » Xdebug » 设置 - 用户

    • 将以下内容添加到您的 Xdebug.sublime-settings 文件中:

    {
      "path_mapping": {
        "C:/wamp/www/your-project/build" : "C:/wamp/www/your-project/src"
      }
    }
    

设置路径映射后,您可以在 '../src' 文件夹中的 php 文件中成功设置断点 运行 您的调试会话和 [=12] 中的文件=]文件夹会在同一位置断点。