1

这是情况..我有一些类在一个项目中...我的主要代码在另一个项目中...我将其分开是因为我使用 GIT 作为我的 SCM...所以当我调试我的主要代码时代码...我想进入这些类并调试它们,但是xdebug不会让我进入它们......我认为它是因为这些类在另一个项目中......有什么想法吗?

提前致谢...

4

1 回答 1

3

我也遇到过这个。我将假设您的项目在部署时的外观是单独项目中的类被复制到主代码中某处的某个目录中。

Foo为简单起见,我们假设单独的项目仅包含一个类。让我们也假设它Foo存在于目录和文件中部署的“主代码”中/maincode/external/lib/Foo.php。最后,假设它/maincode/external/lib作为一个目录存在于您的版本控制的“主代码”项目中,并且它只包含一个占位符文件,否则为空。

首先,使用 git 提供的多种方法之一来忽略该/maincode/external/lib项目的 NetBeans 项目目录中的目录内容。我们要让它看起来像是包含一些东西,我们不希望这个本来应该是空的目录错误地提交更改。

现在它被忽略了,在该目录中创建一个符号链接到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 一点时间考虑一下(或通过调用“源”菜单中的“扫描外部更改”命令来强制解决问题),您应该会看到Foo.php在您创建符号的“主代码”项目中出现关联。

现在,当您跟踪执行并需要进入 Foo.php 以查看 Foo 类在做什么时,您将进入“主代码”项目中的那个。但是,由于它是指向“MyFooProject”项目中文件的符号链接,因此您所做的任何通道都将反映在那里。

完成后,请确保取消链接所有内容(rmUnix 中的普通del命令,Windows 中的常用命令,但在符号链接所在的目录中!)。此外,如果您忽略的目录中有您希望能够提交的内容,则取消忽略该目录。

如果您需要对多个文件执行此操作,则可以链接整个目录。如果您通常将“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“主代码”项目中,为您的执行跟踪乐趣做好准备。

再一次,记住在完成后取消链接并取消忽略所有内容,以免第二天早上醒来发现自己感到困惑。:) 要在 Windows 中取消链接目录...

cd \path\to\project\files\maincode\external\lib
rmdir myfoo

它应该取消链接。(当您删除和 rmdir'ing 时要小心,您正在对符号链接执行此操作!)

于 2011-04-24T05:00:07.183 回答