© all rights reserved. zend technologies, inc. jenseits von var_dump(): debugging in zf jan burkl...

Post on 06-Apr-2015

104 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

©All rights reserved. Zend Technologies, Inc.

Jenseits von var_dump(): Debugging in ZFJan Burkl

System Engineer

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

Demo: Debugging mit Zend Studio

9Insert->Header & Footer

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

Demo: ZF mit FirebugWildfire Support via Zend_Log_Writer_Firebug & Zend_Db_Profiler_FirePHP

11Insert->Header & Footer

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

Demo: ZFDebug Toolbar

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

ZF Zend Monitor Logger

©All rights reserved. Zend Technologies, Inc.

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

©All rights reserved. Zend Technologies, Inc.

Demo: Zend Studio Tipps/Tricks

©All rights reserved. Zend Technologies, Inc.

Danke schön!jan@zend.com

http://framework.zend.com/

top related