Strana 1
Mind PHP Debugger 1.6.4.202 Milan Sotolář 17.12.2011 14:06 www.sworktech.com/mindphpdebugger
Uživatelský manuál
Strana 2
Instalace programu Program se skládá ze dvou částí a to z EXE aplikace (dále jen „aplikace“), která je tvořena souborem „MindPHPDebugger.exe“ a PHP části (dále jen „serverová část“), která je ve složce „./demo“. Instalace je jednoduchá, stačí rozbalit ZIP archiv a nahrát nezávisle obě části podle potřeby do složek. Je přitom jedno, jestli aplikace a serverová část jsou na stejném PC či každá na jiném PC a to: a) uvnitř stejné sítě; b) každá v jiné síti navzájem propojené přes internet.
Spuštění programu Hned po spuštění programu se otevře dialogové okno ve kterém je nutné otevřít .php soubor, který chceme ladit. Pokud program ukončíme a opět jej spustíme, zmiňovaný dialog se již nezobrazí, místo toho se nám automaticky načte naposledy otevřený soubor. Pro začátek můžeme otevřít soubor „debugger.php“, který obsahuje ukázkový příklad použití debuggeru a který jsme instalovali na www server do příslušné složky. Po jeho otevření se nám zobrazí jeho zdrojový kód v hlavním okně programu. Bez otevřeného .php souboru nelze program používat, jelikož program naslouchá na portu TCP 8881 jen v případě, že je úspěšně otevřen .php soubor. To je dáno tím, že je potřeba přijatá data někam vypisovat, tj. do příslušných řádků, na kterých byly položky v .php souboru odeslány. !! Důležité !! Toto ovšem neplatí v případě, že chceme v aplikaci využít jen tu část, která nám vypisuje všechny přijaté chyby do „kompletního přehledu“ (přístupný přes klávesu F11), ale nevypisuje je přímo k PHP kódu. V tom případě stačí načíst soubor „null.php“ a vše se bude vypisovat jen do „kompletního přehledu“.
Strana 3 Dialogové okno pro výběr .php souboru:
Hlavní menu programu
Poznámka: některé položky mohu být v určité chvíli nedostupné. Jejich dostupnost je jen v případě, že lze danou položku použít. Např. v případě, že nemáme otevřen soubor .PHP se zdrojovým scriptem, pak nemůžeme vybrat položku: Soubor → Zavřít zdrojový soubor. Soubor → Otevřít zdrojový soubor (klávesová zkratka Ctrl+O) Slouží k otevření zdrojového .PHP souboru, který chceme ladit. Po otevření bude tento soubor načten a zobrazen v základním okně programu Mind PHP Debugger. Soubor → Zavřít zdrojový soubor (klávesová zkratka Ctrl+Z) Zavře aktuálně načtený zdrojový .PHP soubor. Tím dojde k vypnutí interního serveru, který přestane naslouchat na základním portu TCP 8881.
Strana 4 Soubor → Znovunačtení zdrojového souboru (klávesová zkratka F10) V případě, že jste provedli úpravu ve zdrojovém .PHP souboru (např. za pomoci editoru), pak je vždy nutné, aby v programu Mind PHP Debugger byla načtena aktuální verze laděného souboru. Soubor → Exportovat data komunikace do souboru Uloží přijatá data do souboru pro případné další využití. Soubor → Načíst soubor „null.php“ Načte soubor „null.php“, který se nalézá ve stejné složce jako samotná aplikace. Tento soubor lze využít pro případ, kdy chceme jen přijímat data do „kompletního výpisu“ (klávesa F11). Soubor → Konec Ukončí program Mind PHP Debugger a uloží nastavení. Úpravy → Kopírovat informace z aktuálního řádku Uloží do schránky systému windows informace z aktuálního řádku. Úpravy → Kopírovat zdrojový kód z aktuálního řádku Uloží do schránky systému windows zdrojový kód z aktuálního řádku. Úpravy → Kopírovat detailní informace Uloží do schránky systému windows aktuální detailní informace. Zobrazení → Zobrazit / skrýt komunikaci Zobrazí případně skryje okno zobrazující veškerou komunikaci. Tato data jsou přímo z protokolu a nejsou vůbec zpracována před zobrazením. Většina přenášených dat je pomocí base64. Zobrazení → Zobrazit / skrýt dočasný seznam Zobrazí případně skryje dočasný seznam, který obsahuje data k určitým řádkům zdrojového kódu. Tento seznam slouží převážně při ladění samotného programu Mind PHP Debugger. Pro ladění .PHP scriptů proto nemá žádné rozumné využití.
Strana 5 Zobrazení → Zobrazit / skrýt kompletní přehled (klávesová zkratka F11) Zobrazí případně skryje velice důležitou část programu Mind PHP Debugger. V tomto přehledu je zobrazen kompletní přehled o chybách a informacích. Tyto informace lze uložit do souboru případně vytisknout. Příklad zobrazení kompletního přehledu:
Zobrazení → Zobrazit / skrýt internetový prohlížeč (klávesová zkratka F12) Zobrazí případně skryje interní internetový prohlížeč, který využívá interní jádro prohlížeče IE, které je součástí systému windows. Přes tento prohlížeč lze pohodlně ladit všechny scripty. Zobrazení → Zobrazit / skrýt nastavení programu Zobrazí případně skryje okno s položkami, které slouží k nastavení samotného programu Mind PHP Debugger.
Strana 6 Zobrazit → Nastavení vzhledu kompletního přehledu Zobrazí okno obsahující možnosti nastavení barev pro kompletní přehled:
Zobrazení → Horizontální mřížka Zobrazení → Vertikální mřížka Zobrazení → Horizontální a vertikální mřížka Zobrazení → Bez mřížky Přepíná mezi možnostmi zobrazení okna se zdrojovým kódem. Zobrazení → Automaticky mazat detailní informace Zapíná případně vypíná funkci automatického mazání detailních informací. Prohlédněte si následující dva obrázky zobrazující tutéž část se zapnutou a vypnutou funkcí automatického mazání detailních informací:
(funkce automatického mazání detailních informací je vypnutá)
(funkce automatického mazání detailních informací je zapnutá)
Strana 7 Zobrazení → Zapnout vylepšené zobrazení pro Windows Vista a novější Zapíná případně vypíná vylepšené zobrazení pod systémem windows vista a novější. Prohlédněte si následující dva obrázky zobrazující tutéž část se zapnutým a vypnutým vylepšeným zobrazením pro windows vista a novější:
(vylepšené zobrazení pro Windows Vista a novější je vypnuté)
(vylepšené zobrazení pro Windows Vista a novější je zapnuté) Zobrazení → Resetovat request stav Resetuje grafické indikátory pro requesty.
(request indikátory před resetem)
(request indikátory po resetu)
Strana 8 Zobrazení → Vymazat přijatá data Vymaže všechna přijatá data. Zobrazení → Po obdržení Request::Begin vymazat kompletní přehled Pokud program obdrží Request::Begin, vymaže kompletní přehled. Tato vlastnost se hodí v případě, kdy chceme mít v kompletním přehledu zobrazeny pouze poslední přijaté informace. Zobrazení → Zapnout podporu pro UTF-8 Zapne nebo vypne podporu pro UTF-8 znakovou sadu. Zobrazení → Aktivovat vnitřní opravu pro otevření elementu Zobrazení → Aktivovat vnitřní opravu pro uzavření elementu Aktivuje vnitřní mechanismus pro opravu chyb, které se vyskytly při komunikaci přes síť. Tato chyba může být způsobena výpadkem sítě, resetem vzdáleného systému, apod. Nástroje → Base64 konvertor Obsahuje base64 encoder a decoder.
Strana 9 Nástroje → MySQL Administrator Spustí externí program pro správu MySQL databáze. Nástroje → MySQL Migration Tool Spustí externí aplikaci pro migraci databází. Nástroje → MySQL Query Browser Spustí externí aplikaci, která slouží pro zobrazování dotazů. Nástroje → MySQL SystemTray Monitor Spustí externí aplikaci, který slouží k rychlému přístupu k nástrojům pomocí ikony zobrazené v systemtray. Nápověda → Použití Zobrazí tento soubor s nápovědou pro program Mind PHP Debugger. Soubor s nápovědou je ve formátu .PDF, proto pro jeho zobrazení je nutné mít instalován program Acrobat Reader. Nápověda → Webová stránka programu + nové verze Otevře webovou stránku programu Mind PHP Debugger. Na této stránce jsou všechny informace o programu, všechny vydané verze a informace o chystané nové verzi. Nápověda → Hlášení chyb Našli jste v programu chybu? Program se nechová tak, jak by měl? Nebo by jste něco chtěli změnit či přidat nějakou novou funkci? Neváhete a napište! Za každou informaci budu vděčný a velmi uvítám jakoukoliv pomoc při odstraňování případných chyb nebo námět na nové funkce. Pokud v programu najdete chybu, zkuste se podívat pomoci „Nápověda → Webová stránka programu + nové verze“ jestli už nevyšla verze nová. Pokud máte aktuální verzi, napište mi prosím přesný popis chyby a jak k ní dochází, popřípadě do mailové zprávy přidejte i screenshoty.
Strana 10
Jednotlivé části programu
(okno pro zobrazení čísla řádku, ladících informací a zdrojového kódu)
(ovládání interního internetového prohlížeče)
Strana 11
(přehled přijatých dat)
(detail na ladící informaci)
Strana 12
(detail na autuální řádek na kterém je kurzor)
(základní ovládání programu a rychlý přehled)
Barevné indikátory: „Request :: Begin“ a „Request :: Done“ Příslušný indikátor se rozsvítí v případě, že debugger přijal příslušný request. To poslouží v případě, že požadujeme grafické zobrazení začátku a konce činnosti debuggeru. Popis semaforu: Červený indikátor: Program nenaslouchá na TCP 8881. Důvodem může být, že není otevřen žádný .php soubor nebo že PC nemá přístup do sítě. Zelený : Program naslouchá na TCP 8881.
Strana 13
Ukázkový příklad Otevřeme soubor debugger.php, který obsahuje ukázkový script v našem php editoru a podle potřeby nastavíme: $sharedDebugger->myDebugHost = IP adresa PC na kterém naslouchá MindPHPDebugger $sharedDebugger->myDebugPort = port na kterém naslouchá MindPHPDebugger Příklad: $sharedDebugger->myDebugHost = '192.168.15.70'; $sharedDebugger->myDebugPort = 8881; Port na kterém program naslouchá zatím nelze změnit, je pevně nastaven na TCP 8881. V případě, že chceme využít SSH, směrování portů apd. pak máme možnost si port nastavit v .php souboru. Jestliže je úspěšně otevřen v programu MindPHPDebugger .php soubor, můžeme program vyzkoušet. Přes internetový prohlížeč otevřeme adresu www.neco.cz/demo/debugger.php (tento soubor také máme již otevřen v programu MindPHPDebugger!) případně cestu upravíme podle toho, kam jsme tento soubor uložili. V internetovém prohlížeči se zobrazí jednoduchý výstup, který nás ale až tak nemusí zajímat. Podíváme-li se do programu, pak zde uvidíme na každém řádku, kde něco není v pořádku, popis o jakou chybu se jedná.
Popis funkcí function postVariable( $file, $line, $name, $value ) Pošle obsah proměnné jménem $name a hodnotou $value ze souboru $file a řádky $line. V Mind PHP Debuggeru se nám pak zobrazí obsah proměnné $name->$value. Příklad: $cas = time(); $sharedDebugger->postVariable( __FILE__, __LINE__, "cas", $cas ); function postMessage( $file, $line, $text ) V Mind PHP Debuggeru se nám v souboru $file a na řádce $line objeví $text. Příklad: $sharedDebugger->postMessage( __FILE__, __LINE__, "Úspěšně!" );
Strana 14 function postRequest( $file, $name, $text ) Pošle Mind PHP Debuggeru specifický požadavek. Slouží k ovládání některých funkcí debuggeru. Např. v případě dokončení scriptu je poslán následující požadavek „$this->postRequest( __FILE__, "done", "Request :: Done" );“ Funkce v této verzi nabízí 2 požadavky: •
postRequest( __FILE__, "done", "Request :: Done" ) Tento požadavek se nevkládá do PHP scriptu, jelikož je automaticky volán v __destruct(). (viz. Předchozí text)
•
postRequest( __FILE__, "begin", "Request :: Begin" ) Tento požadavek při vložení do scriptu zajistí v debuggeru na řádce č.1 vypsání zprávy ( čas – IP ) Request :: Begin
function setBreakPoint( $file, $line, $text ) Zastaví běh scriptu na řádce, na které je funkce uvedena a v souboru $file napíše na řádce $line text $text. Přímo v internetovém prohlížeči je pak zobrazen následující výstup: Příklad: $sharedDebugger->setBreakPoint( __FILE__, __LINE__, "Zde přerušit!" ); function postSerializeElement( $file, $line, $element ) Pošle $element, na který bude vykonán příkaz „Serialize“. Jako $element lze použít v PHP např. pole, číslo, text... . V Mind PHP Debuggeru zobrazí na řádce $line celkový výstup z funkce „Serialize“. Tím máme zajištěn výstup s kompletními informacemi o typu proměnné, indexech v případě pole apd. Příklady: $pole = array ("první","druhý","třetí"); $sharedDebugger->postSerializeElement( __FILE__, __LINE__, $pole ); function setRequestsPerSec( $requests ) Nastaví počet požadavků při komunikaci vzdáleného systému s debuggerem. Číslo má přímou souvislost s počtem záznamů. Které jsou odeslány / přijaty za 1s. Výchozí hodnota je 50 požadavků za 1s, tato hodnota by měla být dostatečná pro většinu uživatelů. Při nastavení hodnoty $requests na 0 nebude použit žádný limit a komunikace poběží maximální rychlostí.
Strana 15 function postMySQLExplain( $file, $line, $data ) Velice užitečná funkce při ladění výkonu MySQL databáze a dotazů. $data je pole, které je výsledkem dotazu, který je zpracován funkcí mysql_fetch_array (viz. přiložený soubor mysql_demo.php ). Odeslaná data se v programu zobrazí v kompletním přehledu (klávesová zkratka F11). function postArrayWalk( $file, $line, $pole [, $text ] ) Funkce provede postMessage u každého prvku $pole a volitelně před něj vloží $text. Velmi se hodí pro zobrazení všech prvků $pole.