2011-04-21 76 views
1

這裏是情況..我有一些類在一個項目中......我的主代碼是在另一個項目中......我將它分解,因爲我使用GIT作爲我的SCM。因此,當我調試我的主代碼...我想進入類和調試它們,但xdebug不會讓我們步入他們...我假設它是因爲類在另一個項目.. 。 有任何想法嗎?netbeans跨項目的xdebug

在此先感謝...

回答

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的一個或兩個時間來考慮它(或通過調用生效的問題「掃描外部變化」,在「源」菜單命令),你應該看到Foo.php在顯示「 maincode「項目,您在其中創建了符號鏈接。

現在,當您追蹤執行並需要進入Foo.php以查看Foo類正在做什麼時,您將進入「maincode」項目中的那個。由於它是「MyFooProject」項目中的文件的符號鏈接,因此您所做的任何chane都會反映在那裏。

當您通過時,務必解除所有連接(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」項目中顯示的所有文件和子目錄,爲您的執行準備好追蹤樂趣。

再一次,記住,一旦你完成了,不要忽視所有的事情,以免第二天早晨醒來發現自己感到困惑。 :)要取消窗口中的目錄...

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

它應該取消鏈接。 (只是要小心,當你刪除和rmdir'ing,你正在做它的符號鏈接!)

+0

OH男人......謝謝!!!!!這麼多...它的工作...我不知道爲什麼我沒有考慮符號鏈接...再次,謝謝你這麼多... – 2011-04-26 18:53:13