デバッグの一般的な方法は何ですか?


7

1)ローカルまたはリモート?デバッグのベストプラクティスはローカルバージョンのウェブサイトを用意することですが、現在のウェブサイトのローカルバージョンを作成することは、特にサイトが公開されていて、いくつかの調整をしたい場合に非常に時間がかかることがあります。または、いくつかの小さな問題を修正します。

2)上記の理由により、通常はオンラインで直接デバッグします。ここに私がよく遭遇する典型的なシナリオがあります:フロントエンドがphpファイルに関するエラーを報告しています。ファイルを開いて問題の行を調べます。それはクラスのメソッドにあります。その後私はvar_dump何が問題であるかを確認するために関連する変数を使用し、それが役に立たない場合が多いので、問題の変数が関数のパラメーターの1つに関連していることを見つけるために、関数をさらに詳しく調べます。パラメータが正確に何であるかを知るために、この関数が呼び出される場所を見つける必要があります。ここで私は通常行き詰まっています。拡張機能またはWebサイト全体をローカルにダウンロードし、すべてのphpファイルで関数のテキスト内検索を実行する必要があります。多くの場合、呼び出しのスコアがいくつかありますが、どれが問題を引き起こしているかを確認するために、それらを1つずつ試してみる必要があります。多くの場合、これにより別の機能が発生し、上記のプロセスをもう一度繰り返す必要があります。...この手順は非常に時間がかかり、イライラして混乱することがよくあります。これは誰もが経験することですか?

だから私は洗練されたjoomla開発者が彼のサイトをどのようにデバッグするのだろうと思っています、これの一般的な方法は何ですか?デバッグのためにjoomlaのドキュメントを読んでいて、それでもeclipse / xdebug環境の構成に取り組んでいましたが、上記の質問はまだ残っていると思います。


定期的にコーディング/デバッグする場合は、xdebugまたは同様のPHPデバッガが不可欠だと思います。
TryHarder 2017

回答:


5

私は洗練された開発者とはほど遠く、オンラインサイトでもデバッグを行っています。

私はこの素晴らしいツールを使います

http://extensions.joomla.org/extension/j-dump

1つのvar_dumpに比べて多くの利点があります。それもあなたのために働くことを願っています。


ありがとうございました!私が言及した手順も実行しますか?(関数呼び出しを探して、1つは別のものにつながり、最終的にいくつかのjoomlaコアクラスに遭遇すると、JLegacyまたはJObjectをたどり、joomlaドキュメントページでそれらを検索します。 )
shenkwen 2015

ちなみに、拡張機能の説明は非常に有望に見えます。ありがとうございます。
シェンクウェン2015

jdump、dump($ object)として使用すると、$ object変数の値が表示されますが、dumpTrace();を使用することもできます。通話が完了します。
Piero Marsilio

5

まあ、私の個人的な好みは...何をデバッグする必要があるかによります。

奇妙なCSSのために正しく表示されない単純な要素の場合は、ライブサイトを実行し、Firebugを開いて整理します。

それがPHPまたはJS関連の問題である場合、私は通常、サイトのコピーを取り、私のローカルホストで実行する傾向があります。var dumping variables test codeを開始する場合があるので、これは常に最良のアプローチです。ライブサイトでこれが起こっているのを目にするべきではありません。

また、多くの場合、デバッグ時にexit;は、条件ステートメントのコードが機能しているかどうかを確認するために使用するとよいでしょう。これを使用すると(おそらくご存じのとおり)、空白のサイトページが表示されます。ライブサイトでデバッグしない別の理由。

ローカルホストでサイトを設定するのに時間がかかりすぎる場合は、サイトが修正されるまで一時的にオフラインモードにすることをお勧めします。

サイトを開発する際の将来のヒントは、ローカルホストでサイトを構築し、グローバル構成でのJoomlaのレポートを開発に変更して、すべてのエラーが表示され、ライブ配信する前に修正できるようにすることです。


ローカルデバッガーのセットアップは、xdebugとほとんどの開発エディターを使用することで、現在非常に簡単です。開発速度を劇的に向上させ、自分でコードウォークスルーを行うこともできます
jdog
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.