这是情况..我有一些项目在一个项目...我的主要代码是在另一个项目...我分裂了,因为我使用GIT作为我的SCM ...所以当我调试我的主要代码...我想进入类并调试它们,但是xdebug不会让我介入它们......我认为它是因为类在另一个项目中...任何想法?< / p>
提前致谢...
答案 0 :(得分:3)
我也遇到过这种情况。我将假设项目在部署时的外观是单独项目中的类被复制到主代码中的某个目录中。
我们假设单独的项目只包含一个类Foo
,为简单起见。我们也假设Foo
存在于目录和文件/maincode/external/lib/Foo.php
中已部署的“主代码”中。最后,让我们假设/maincode/external/lib
作为版本控制的“主代码”项目中的目录存在,并且它只包含一个占位符文件,否则为空。
首先,使用git提供的众多方法之一忽略NetBeans项目目录中该项目的/maincode/external/lib
目录的内容。我们将使它看起来像包含一些东西,并且我们不希望这个目录应该是空的,以便错误地将更改提交给它。
现在它被忽略了,在另一个项目中将该目录中的符号链接改为Foo.php
。在Unix中,您需要ln
命令,例如
ln -s /path/to/project/files/MyFooProject/Foo.php Foo.php
在Windows中,您正在寻找mklink
命令,例如
mklink Foo.php C:\path\to\project\files\MyFooProject\Foo.php
让NetBeans思考一下(或者通过调用“Source”菜单中的“Scan for external changes”命令来强制解决问题),你应该看到Foo.php
出现在“ maincode“你做了符号链接的项目。
现在,当您追踪执行并需要进入Foo.php以查看Foo类正在执行的操作时,您将进入“maincode”项目中的那个。但是,由于它是“MyFooProject”项目中文件的符号链接,因此您制作的任何链接都将反映在那里。
确保取消所有内容(Unix中的正常rm
命令,以及Windows中常用的del
命令,但是当您通过时,在符号链接所在的目录中!)。此外,如果您忽略了您希望能够提交的目录中的内容,则取消忽略该目录。
如果您需要为多个文件执行此操作,则可以链接整个目录。如果您通常将“MyFooProject”的内容复制到已部署版本的/maincode/external/lib/myfoo/
目录中,而不是上述内容,则只需链接相应的目录,就像上面的文件一样。例如,在Windows中,
cd \path\to\project\files\maincode\external\lib
mklink /D myfoo C:\path\to\project\files\MyFooProject
这将成为符号目录链接。我已经有一段时间了,因为我在Unix上做了类似的事情,所以我不记得在那个操作系统上同样的事情的确切命令(或者甚至可以在Unix上使用符号目录链接)。链接目录后,您应该看到新目录以及NetBeans“maincode”项目中显示的所有文件和子目录,为您的执行跟踪乐趣做好准备。
再次,记得在完成后取消链接并取消忽略所有内容,以免第二天早上醒来发现自己感到困惑。 :)取消链接Windows中的目录...
cd \path\to\project\files\maincode\external\lib
rmdir myfoo
它应该取消链接。 (当你删除和rmdir'ing你正在做它的符号链接时要小心!)