it-swarm-eu.dev

Jak ladíte pluginy?

Zcela jsem nováčkem v tvorbě pluginů a měla jsem těžké ladění.

Použil jsem spoustu ozvěny a je to nedbalý a ošklivý.

Jsem si jistý, že existuje lepší způsob, jak toho dosáhnout, možná IDE s debuggerem, který mohu spustit celý web včetně pluginu?

47
Sruly

Přejděte do wp-config.php a změňte define('WP_DEBUG', false); na define('WP_DEBUG', true);. Také nainstalujte Andrew Nacin Log Deprecated Notices plugin.

21
John P Bloch

Pokud tisknete chyby, pak x-debug je brilantní PHP rozšíření, které do PHP přidává moderní backtraces.

Pokud se snažíte zjistit, co se děje tam, kde nejsou žádné chyby, můj oblíbený přístup je definovat funkci, která zaznamenává její výstup do souboru. Takže dělám plog (proměnná $) a to, co se objeví v souboru protokolu, který pak můžu prozkoumat. To je obzvláště užitečné, když se snažíte zjistit, co se stalo před voláním header (), nebo jiných situací, kdy nelze tisknout na STDOUT.

12
tomdxw

Použít xdebug + NetBeans IDE. Když je plně nakonfigurován - což je snadné - můžete nastavit body přerušení ve vašem pluginu a sledovat proměnné v bodech přerušení. Myslím, že je to nejlepší způsob, jak ladit pluginy nebo jakékoli php aplikace.

10
Raj

Ladím staromódní způsob, error_log()ing a var_dumping. Zjistil jsem, že je to pro mne nejefektivnější způsob, mám pár funkcí pro zpracování různých typů dat, protože pole a objekty error_loging mohou být bolestí. Také použití print_r() v může být složité číst, když není v <pre>. Mám tj_log() pro protokolování chyb a tj() pro zobrazování výstupu (který v podstatě zobrazuje jakýkoliv typ dat v prezentovatelném mannor:

function tj( $code ) {

    ?>
    <style>
        .tj_debug { Word-wrap: break-Word; white-space: pre; text-align: left; position: relative; background-color: rgba(0, 0, 0, 0.8); font-size: 11px; color: #a1a1a1; margin: 10px; padding: 10px; margin: 0 auto; width: 80%; overflow: auto; -moz-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -webkit-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -moz-border-radius: 5px; -webkit-border-radius: 5px; text-shadow: none; }
    </style>
    <br /><pre class="tj_debug">

    <?php
    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        var_dump( $code );

    else :
        print_r( $code );

    endif;

    echo '</pre><br />';

}

function tj_log( $code ) {

    if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
        $code = var_export( $code, true );

    else :
        $code = print_r( $code, true );

    endif;

    error_log( $code );

}

Tak jsem to prostě udělal: tj( $current_user ); nebo cokoliv.

6
Joe Hoyle

Napsal jsem malou třídu pro make logfile, je velmi užitečný, když ladíte iax volání.

http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php

Potřebuješ jen něco jako:

Debug :: log ("Toto je zpráva ladění");

Když je tento řádek proveden, zpráva bude přidána do souboru protokolu a poté můžete použít příkaz tail (pokud používáte nějaký operační systém unixového stylu)

tail -f mylogfile.log

Pokud do této funkce můžete přenést pole nebo objekt.

note potřebujete změnit řádek 20 pro cestu, kam chcete uložit soubor protokolu

5
Gnuget

Poté, co jsem si pohrával s řadou IDE, jsem se usadil v prostém starém Notepad ++ s ultra-přizpůsobeným barevným schématem zvýraznění syntaxe.

Mám nastaveno makro tak, že když stisknu Shift-Ctrl-X, následující kód dostane výstup, kde je můj kurzor:

echo "<pre>";
var_dump($);
echo "</pre>";
exit();

Je to jednoduché, ale mohu obecně shánět 90% mých chyb s tímto makro plus WP_DEBUG povoleno.

5
SethMerrick

Používám Aptane IDE na Linuxu a UltraEdit na Windows, a ten má také PHP-parser. Také zobrazuji všechny rady z xDebug s konstantou WP_DEBUG definovanou v wp-config.php.

Viz také moje příspěvek na toto téma a neváhejte komentovat a poskytnout zpětnou vazbu o svých vývojových nástrojích.

3
bueltge

Není to tak špatné: Eclipse Je to blízko PhpStorm + zdarma.

2
kaiser

Doporučuji check out FirePHP . Informace o ladění můžete odesílat do Firefoxu Firebug přes HTTP hlavičky, což obvykle umožňuje čistší výstup ladění.

2
Annika Backstrom

K dispozici jsou dva IDE, které mohu doporučit a používám jak extenzivně: PhpED (pouze Windows) a PhpStorm + XDEBUG (Mac, Windows a Linux). dopis.

Oba jsou ROCK! Dobrá zpráva, že PhpStorm je 49 dolarů před září 2010 a jen 99 dolarů za to. Kdybych byl ve Windows a musel jsem si znovu vybrat, nejsem si jistý, který bych si vybral.

Upřímně řečeno, nemůžu si pomoct, ale pocit, že každý plugin vývojář nepoužívající jeden z těchto dvou nástrojů je těžce postižené, zejména pokud jsou relativně nové pro vývoj WordPress pluginy.

1
MikeSchinkel

Krumo - stylizovaná třída ladění PHP

Další opravdu pěkná věc je "krumo" třída php. Je implementován za ½ minuty a nabízí snadný způsob ladění všech druhů proměnných:

  • objekty,
  • pole,
  • řetězce/float/integer/atd.

Plus to pomáhá s backtracingem, ukazuje načtené třídy nebo obsažené soubory a vše na vyžádání.

Plus je to ZDARMA!

Stažení

Krumo @sourceforge

1
kaiser

Nejprve přidám define('WP_DEBUG', false); do souboru wp-config.php (jak řekla většina lidí) do mé místní instalace, která je nedávnou kopií příslušného produkčního webu (souborů i dat). To dělá věci rychlé, bezpečné, oddělené, ale odráží dobře alespoň jedno místo, které bude plugin skutečně použit.

Také přidávám Debug Bar plugin spolu s některými z doplňků Debug Bar (například Transients) - podle vašich pluginů.

Také používám doplněk Firebug pro Firefox, který je výborný pro sledování html, css a JavaScript problémů také pro prohlížení podivnosti rozvržení.

I kódovat pomocí UltraEdit, který jsem použil pro 15 + let pro celou řadu kódování (php až do SQL), jak v práci a doma, a tak to funguje dobře pro mě, ale možná nemá dost I k sazbě jako IDE pro mnoho lidí. To má zvýraznění syntaxe, automatické dokončení a funkce rozložení kódu a spoustu html a css zkratky nástroje, které mohou pomoci vyhnout se překlepy a podobně. Většinou mi to přináší obeznámenost, což je důležitý aspekt, který je v Rush často přehlížen k novému. Svalová paměť podporuje opakovatelnost i v kódování.

A samozřejmě mám obvykle nějakou vhodnou stránku z codexu otevřenou v jiné záložce na vhodném příkladu.

To vše pomáhají různými způsoby zvýraznění kódování, analýzy, funkčních chyb a chyb rozvržení a nezasahují do toho, jak jsem kód nebo pokud není nic špatného. Většina z nich může být na chvíli ignorována nebo deaktivována, pokud experimentujete nebo pracujete s něčím, na co se vrátíte později.

Oh, a není tam nic špatného s dobře umístěnou echou nebo print_r zkontrolovat něco na klíč (tak dlouho, dokud je odstraníte, když jste hotovi).

0
Lunc

Podívejte se Query Monitor v kombinaci s Query Monitor Extend pro komplexní ladění WordPressu (PHP chyby/upozornění/stricts/warnings, databázové dotazy, cesty, konstanty, HTTP požadavky, přechodné události, relační proměnné, var dump) .

Také se podívejte na All Post Meta a Saving Co pluginy pro konkrétní informace o příspěvcích.

0
Caleb

PHPStorm a Xdebug je hra, která se mě mění pro vývoj WordPressu. Vřele doporučujeme nyní. Speciálně s jejich inline ladicími nástroji.

0

Používám phpED a xdebug, ale pro mě (a zdá se, že pro někoho jiného) je nemožné ladit pluginy nebo soubor motivu! Ladicí program se zastaví pouze na zarážkách, které jsou v hlavních nebo původních "jádrových" souborech! někdo mi může pomoci?

0
Kreker