PhpStorm xdebug断点无法正常工作

PhpStorm xdebug断点无法正常工作,php,debugging,xdebug,phpstorm,Php,Debugging,Xdebug,Phpstorm,我很难让某些断点在我的项目中工作。以下是我的项目的目录结构: /repo (git root) /Portal /store /classes /mvc /store /actions MyAction.php /templates /store1 /actions MyChildAction.php (child of MyAc

我很难让某些断点在我的项目中工作。以下是我的项目的目录结构:

/repo (git root)
  /Portal
    /store
      /classes
        /mvc
          /store
            /actions
              MyAction.php
    /templates
      /store1
        /actions
          MyChildAction.php (child of MyAction)
        index.php
现在,如果我在index.php中的“/store1”中设置一个断点,它就可以正常工作了。如果我在MyChildAction.php中设置断点,它就可以正常工作。但是,如果我在“mvc”目录中的MyAction中设置断点,它将被完全忽略。如果我在MyAction.php中使用xdebug_break(),它实际上可以工作,这让我很困惑。我没有设置任何路径映射,因为文件结构和远程结构完全相同

以下是应该命中的断点的xdebug日志:

(我已经重命名了很多目录,所以请原谅冗余的命名约定)


注意:这似乎是PSR4自动加载的原因。我在/templates/store1目录下的index.php中定义了vendor/autoload。

可能缺少路径映射——特别是在使用符号链接的情况下(请记住——xdebug仅适用于实际/解析路径)。另一个可能的原因——错误的外壳。如果您将“mvc”重命名为mvc(例如),您将在Finder中看到新名称。但在terminal中,可能仍然使用旧的大小写(我在过去看到过3或4个类似的情况)。这似乎是由自动加载的类造成的。如果我添加require_once“/path/to/MyAction.php”,它会起作用。xdebug似乎不尊重require_once”供应商/autoload.php“composer autoload file.”xdebug似乎不尊重require_once“vendors/autoload.php”composer autoload file“我真的对此表示怀疑。对我来说总是很好(Linux和Windows——没有Mac可以运行/测试)。自动加载要么有效(类被加载,PHP知道),要么无效(PHP不知道)。有一个onw票证——在自定义自动加载器中使用的路径分隔符与类似的行为有关。。但您正在使用由composer autoloader管理的。。。我应该更新这个问题,我道歉。事实上,我知道发生了什么,你是对的。我检查了get_included_files()的结果(从手动断点),注意到我希望xdebug解析的文件不在该集合中。不用说,问题是我的PSR-4自动加载配置;调整该选项解决了问题。谢谢