• If you’re not using Firebug when coding for
the web, you’re missing out...
• And making it harder on yourself...
• For no good reason
• Debugger
• Real-time HTML/DOM editing
• Real-time CSS editing
• Request/Response/Network Analysis
• Interactive Javascript
• Great Plug-ins, like FirePHP and YSlow
• Getting Started
• getfirebug.com
• Inactive
• Active
Interactive Console
• Network Analysis
Drill-down
• Real-time HTML editing
• Was not working for me when I tried it,
but I have done it before. It should work.
• Real-time CSS editing
• Also not working when I put this together
• But, normally they work and are
AWESOME!
Interactive JS Debugger
Breakpoints
Watch List
Variable
Inspector
Stack
Inspector
FirePHP
Firebug Extension for
AJAX Development
• Getting Started
• www.firephp.org
FirePHP
Firebug Extension for
AJAX Development
• Two parts:
• Browser plug-in
• PHP API
That’s the beginning
Member variable filters
Log your classes, but hide sensitive data automatically
Exception Handling
Exception Stack Trace
Error Handler
Assertion Handler
Assert fail still shows warning...
Message Groups
Log Tables of Data
Variable Dumping
(var_dump ++)
Where is it???
In the Server part of the Net request:
Zend Framework
• Doesn’t require you to download the
standard library
• Protocol is built into Zend Framework
• Use it with Zend_Log
• Use it with Zend_Db_Profiler_Firebug
Zend Framework
Zend Framework
• Zend_Log works using the Observer
pattern
• Log writers are added to Zend_Log
• Each writer can log different levels, to
different places, using different methods
• i.e., file, database, Twitter, or FirePHP
Zend Framework
• Create your writer
• Add the writer to the Zend_Log object
• Do this in your bootstrap before dispatch
Zend Framework
• Zend_Log lets you set your own logging
levels and map those to FirePHP log types
• $logger->addPriority('ULTRA', 8);
• $writer->setPriorityStyle(8, 'TRACE');
• $logger->ultra('Ultra Message - With
trace');
Zend_Log
• Logging exceptions happens automatically
• Just pass the Exception object and FirePHP
will show the exception and stack trace
• Zend_Log, like log4j, lets you set up
multiple writers, with global or local filters,
formats, etc
• One log call can result in many logs in many
places if that’s what you want
How it all works
• FirePHP sends data using HTTP headers
• It detects FirePHP running. If it’s not there,
it sends nothing
• Sniff the wire in IE. Nothing there.
With great power...
• FirePHP logging is very powerful and very
useful.
• If someone is looking at your site with
FirePHP installed, they will see your
messages... unless...
A couple of options
• Turn off logging in production
• $writer->setEnabled(false);
• Turn off logging in production, but enable if
users who should be able to see this stuff
are logged in
• Allows developers to “debug” in
production
• “Debugging” in production requires smart
logging
Smart Logging
• Logs can help you track down exactly what
happened
• Or they can be confusing and useless
• File logging is a must when you need to
track down problems after they happened
and reproducing the problem is difficult,
expensive, or impossible
FirePHP Logging
• FirePHP logs are temporal
• More detail can be useful for FirePHP logs
than would be practical with file logs
• Zend_Log means you don’t need to make
more than one log call
• Use filters/priorities to determine if you
want FirePHP, file logging, or both
0 comments
Post a comment