firebug and firephp
DESCRIPTION
Why you should use Firebug and FirePHP if you're a PHP programmer.TRANSCRIPT
Firebug Extension forAJAX Development
Zend_Log
• 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
• Getting Started
• www.firephp.org
FirePHPFirebug Extension forAJAX Development
• Two parts:
• Browser plug-in
• PHP API
FirePHPFirebug Extension forAJAX Development
• Standalone Library
• Zend_Log_Writer_Firebug
• Zend_Db_Profiler_Firebug
• Other Integrations: Agavi, BIGACE, CakePHP, CodeIgniter, Drupal, ExpressionEngine, eZ, Joomla, Kohana, Nette Framework, PEAR, PRADO, Probus, Project Zero, REDAXO, Seagull
FirePHPFirebug Extension forAJAX Development
Standalone Library
Standalone Library
That’s the beginning
Member variable filtersLog 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_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
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');
• 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
Zend_Log
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
Questions?
• Email: [email protected]
• http://framework.zend.com/manual/en/
• http://getfirebug.com/
• http://firephp.org/