Beyond var dump Debugging in ZF IPC 2010

Insert YouTube videos in PowerPont slides with aS Desktop
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Jenseits von var_dump(): Debugging in ZF : 

Jenseits von var_dump(): Debugging in ZF Jan Burkl System Engineer

Wer bin ich? : 

Wer bin ich? Jan Burkl jan.burkl@zend.com PHP Entwickler seit 2001 Projektarbeit Bei Zend seit 2006 System Engineer Zend Certified Engineer PHP 5 Zend Framework

var_dump() is Evil : 

var_dump() is Evil “But I still need to know more!!”

Do you do the var_dump()? : 

Do you do the var_dump()? Warum var_dump()? Eine Art des Debuggens so alt wie PHP selbst Schnell, einfach & man sieht was man braucht Es ist dabei in jeder Developers Toolbox Benötigt keine Nachforschung, Installation oder Zeit

Why var_dump() is evil! : 

Why var_dump() is evil! var_dump() verändert die Applikation und/oder den Library Code, um eine bestimmte Situation zu debuggen Nicht “web friendly” (<pre> tags und die() Statements) Zend_Debug ist ein glorifiziertes var_dump() Zend_Debug::dump($var); // mehr Schreibarbeit, aber: Zend_Debug überprüft sapi und der Output wird mit htmlspecialchars gefiltert <pre> Tags um Output Label Rückgabewert Zend Debug ist keine Entschuldigung nicht in eine richtige Debugging Umgebung zu investieren 5 Insert->Header & Footer

Why is var_dump() evil? (cont.) : 

Why is var_dump() evil? (cont.) Nicht entwicklerfreundlich: Es muss sich gemerkt werden, wo var_dump() eingesetzt wurde Evtl. sind mehrere var_dump() und die() Aufrufe notwendig, um ein Problem zu identifizieren Evtl. muss die Umgebung für jede Debug Iteration zurückgesetzt werden 6 Insert->Header & Footer

Why is var_dump() evil? (cont.) : 

Why is var_dump() evil? (cont.) Interferenzen mit “normalem” Output “debugging data should not interfere with the content on your page” Kein echter Breakpoint Keine Runtime Introspektion der Umgebung Kein Kontext der “schlechten Situation” 7 Insert->Header & Footer

Debugging Mit Zend Studio : 

Debugging Mit Zend Studio ZendDebugger (PHP extension) von zend.com Integriert in Zend Server (full oder CE), Binary Weitere Option ist Xdebug (Derick Rethans) Zend Studio (paid) & PDT (free) haben beide Debugging-Fähigkeiten Zend Studio Toolbar nutzen Alles gibt’s hier: http://www.zend.com/en/products/studio/downloads 8 Insert->Header & Footer

Demo: Debugging mit Zend Studio : 

Demo: Debugging mit Zend Studio 9 Insert->Header & Footer

ZF und Firebug (FirePHP) : 

ZF und Firebug (FirePHP) FirePHP ist eine Bridge von PHP zu Firebug Benötigt Firebug Nutzt die Zend_Wildfire Komponente in ZF Implementierungs Hooks in ZF: Zend_Log_Writer_Firebug Zend_Db_Profiler_Firebug

Demo: ZF mit Firebug : 

Demo: ZF mit Firebug Wildfire Support via Zend_Log_Writer_Firebug & Zend_Db_Profiler_FirePHP 11 Insert->Header & Footer

ZFDebug Toolbar (Scienta ZF Debug Bar) : 

ZFDebug Toolbar (Scienta ZF Debug Bar) 3rd Party Tool Entwickelt von Andreas Pankratz und Joakim Nygård http://zfdebug.googlecode.com In-page Toolbar Kontra: Wird Teil des Output Streams Pro: Nur ein Div-Layer am Ende der Seite Kann in jeder Umgebung eingesetzt werden, keine speziellen Tools notwendig

Demo: ZFDebug Toolbar : 

Demo: ZFDebug Toolbar

ZF’s Zend Monitor Logger : 

ZF’s Zend Monitor Logger Zend Montior Logger in ZF eingebaut Nur ein application.ini Schlüssel notwendig Zend Monitor ist Bestandteil von Zend Server (nur Full Version, nicht CE Version) 30 Tage Trial

ZF Zend Monitor Logger : 

ZF Zend Monitor Logger

Zend Studio & ZF : 

Zend Studio & ZF Wie nutzt man beides zusammen? Gute Breakpoints in ZF: Gute Stellen für Breakpoints in ZF: Bootstrap Methoden Plugin Broker Dispatcher Action Controller init-Methode & erste Zeile einer Action “Expression” View nutzen, um Umgebung zu verstehen

Demo: Zend Studio Tipps/Tricks : 

Demo: Zend Studio Tipps/Tricks

Danke schön! : 

Danke schön! jan@zend.com http://framework.zend.com/