30
Magento – Create a globally available static function
Sometimes, you’ve got a situation where you want to have a globally available static function. Most often this occurs (for me) in a debugging context. Recently I wanted to have FirePHP available from anywhere in my project so I made use of the lib folder.
Unlike just about every other article on this site, for this one we’re going to be considering the folder /lib. Note that this folder is NOT within local, but resident in the root. As such changes here should be put within their own sub-folders so that they too will survive an upgrade.
It’s really quite easy to create your class, just follow the usual Magento naming conventions. I’m going to create Spinonesolutions_Devel_FirePHP so all I do is create the file: /lib/Spinonesolutions/Devel/FirePHP.php. Note the similarity to Model naming.
In here I create my class definition:
<?php
class Spinonesolutions_Devel_FirePHP {
public static function send($var, $label = "DEBUG", $style = "LOG") {
if (Mage::getIsDeveloperMode()) {
$request = new Zend_Controller_Request_Http();
$response = new Zend_Controller_Response_Http();
$channel = Zend_Wildfire_Channel_HttpHeaders::getInstance();
$channel->setRequest($request);
$channel->setResponse($response);
/*
* Start output buffering
*/
ob_start();
Zend_Wildfire_Plugin_FirePhp::send($var, $label, $style);
/*
Style Description
LOG Displays a plain log message
INFO Displays an info log message
WARN Displays a warning log message
ERROR Displays an error log message that increments Firebug?s error count
TRACE Displays a log message with an expandable stack trace
EXCEPTION Displays an error long message with an expandable stack trace
TABLE Displays a log message with an expandable table
*/
/*
* Flush log data to browser
*/
$channel->flush();
$response->sendHeaders();
} else {
return null;
}
}
}
Now I can call Spinonesolutions_Devel_FirePHP:send() anywhere in my project. Sweet!
1 Comment for Magento – Create a globally available static function
Magento – Create a globally available static function | durga | December 5, 2011 at 11:24 pm


[...] here I create my class definition: view plaincopy to [...]