1

これが状況です..あるプロジェクトにいくつかのクラスがあります...メインコードは別のプロジェクトにあります...そして、GITをSCMとして使用しているため、これを分割します...メインをデバッグするときコード...クラスにステップインしてデバッグしたいのですが、xdebugではそれらにステップインできません...クラスが別のプロジェクトにあるためだと思います...何かアイデアはありますか?

前もって感謝します...

4

1 に答える 1

3

私もこれに遭遇しました。プロジェクトがデプロイされたときの外観は、別のプロジェクトのクラスがメイン コードのどこかのディレクトリにコピーされていると仮定します。

Foo簡単にするために、別のプロジェクトには 1 つのクラスのみが含まれていると仮定します。Fooまた、それがディレクトリとファイルの展開された「メイン コード」に存在すると仮定しましょう/maincode/external/lib/Foo.php/maincode/external/lib最後に、がバージョン管理された「メイン コード」プロジェクトのディレクトリとして存在し、プレースホルダー ファイルのみを含み、それ以外は空であると仮定します。

まず、git が提供する多くの方法の 1 つを使用して/maincode/external/lib、そのプロジェクトの NetBeans プロジェクト ディレクトリ内のディレクトリの内容を無視します。何かが含まれているように見せかけますが、そうでなければ空のはずのこのディレクトリに、誤って変更がコミットされることは望ましくありません。

無視されたので、そのディレクトリにFoo.php他のプロジェクトへのシンボリックリンクを作成します。lnUnix では、コマンドが必要です。

ln -s /path/to/project/files/MyFooProject/Foo.php Foo.php

mklinkWindows では、コマンドを探しています。

mklink Foo.php C:\path\to\project\files\MyFooProject\Foo.php

NetBeans で少し考えてみてください (または、「ソース」メニューの「外部変更のスキャン」コマンドを呼び出して問題を強制します)。Foo.phpシンボリックを作成した「メインコード」プロジェクトに表示されるはずです。リンク。

ここで、実行をトレースしていて、Foo クラスが何を行っているかを確認するために Foo.php にステップ インする必要がある場合は、「メインコード」プロジェクトにあるものにステップ インします。ただし、これは「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でそのようなことをしてからしばらく経っているので、そのOSで同じことを行うための正確なコマンドを覚えていません(またはシンボリックディレクトリリンクがUnixでさえ可能かどうか)。ディレクトリがリンクされると、新しいディレクトリに加えてすべてのファイルとサブディレクトリが NetBeans の「メインコード」プロジェクトに表示され、実行トレースの準備が整うはずです。

繰り返しますが、完了したらすべてのリンクを解除して無視を解除することを忘れないでください。翌朝起きて混乱しないようにします。:) Windowsでディレクトリのリンクを解除するには...

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

リンクを解除する必要があります。(シンボリックリンクに対して行っていることを削除してrmdirするときは注意してください!)

于 2011-04-24T05:00:07.183 に答える