diff options
author | oetting <jacob@oettinger.dk> | 2008-04-17 14:06:49 +0000 |
---|---|---|
committer | oetting <jacob@oettinger.dk> | 2008-04-17 14:06:49 +0000 |
commit | 27cda197b4a234a969f310b8466003ef3bea70a8 (patch) | |
tree | 53998597e6aace4586726d141569cf55a3d1d480 | |
parent | 5d373dc6b6d8d2beeb1c2258e9aa5b76d29716ed (diff) | |
download | webgrind-27cda197b4a234a969f310b8466003ef3bea70a8.zip webgrind-27cda197b4a234a969f310b8466003ef3bea70a8.tar.gz webgrind-27cda197b4a234a969f310b8466003ef3bea70a8.tar.bz2 |
Namespaced config. Embedded filviewer into main controller (index.php)
-rw-r--r-- | config.php | 4 | ||||
-rw-r--r-- | fileviewer.php | 30 | ||||
-rw-r--r-- | index.php | 26 | ||||
-rw-r--r-- | lib/FileHandler.php | 10 | ||||
-rw-r--r-- | templates/fileviewer.phtml | 15 | ||||
-rw-r--r-- | templates/index.phtml | 10 |
6 files changed, 49 insertions, 46 deletions
@@ -3,7 +3,7 @@ /** * Configuration for webgrind */ -class Config{ +class Webgrind_Config{ /** * Regex that matches the trace files generated by xdebug */ @@ -44,7 +44,7 @@ class Config{ * %1$s will be replaced by the full path name of the file * %2$d will be replaced by the linenumber */ - static $fileUrlFormat = 'fileviewer.php?file=%1$s&line=%2$d'; // Built in fileviewer + static $fileUrlFormat = 'index.php?op=fileviewer&file=%1$s&line=%2$d'; // Built in fileviewer //static $fileUrlFormat = 'txmt://open/?url=file://%1$s&line=%2$d'; // Textmate //static $fileUrlFormat = 'file://%1$s'; // ? diff --git a/fileviewer.php b/fileviewer.php deleted file mode 100644 index ded8fa5..0000000 --- a/fileviewer.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -function highlight_num($file, $line){ - $lineCount = count(file($file)); - $numbers = '<code class="num">'; - for($i = 1; $i<=$lineCount; $i++){ - $numbers .= ($i==$line)? '<span id="line_emph"> </span>' : ''; - $numbers .= $i.'<br />'; - } - $numbers .= '</code>'; - - return $numbers . highlight_file($file, true); -} - - - -if(isset($_GET['file']) && $_GET['file']!=''){ - $file = $_GET['file']; - $line = $_GET['line']; - if(!file_exists($file)) - $content = 'File('.$file.') does not exist.'; - if(!is_readable($file)) - $content = 'File('.$file.') is not readable.'; - else - $content = highlight_num($file, $line); - -} else { - $content = 'No file to view'; -} - -require 'templates/fileviewer.phtml';
\ No newline at end of file @@ -1,7 +1,7 @@ <?php require 'config.php'; -require 'lib/Webgrind/FileHandler.php'; +require 'lib/FileHandler.php'; // Errorhandling. // No files, outputdir not writabel // Show self traces in option group @@ -9,7 +9,7 @@ set_time_limit(0); // Make sure we have a timezone for date functions. if (ini_get('date.timezone') == '') - date_default_timezone_set( Config::$defaultTimezone ); + date_default_timezone_set( Webgrind_Config::$defaultTimezone ); switch(get('op')){ @@ -57,7 +57,7 @@ switch(get('op')){ } $result['dataFile'] = $dataFile; $result['invokeUrl'] = $reader->getHeader('cmd'); - $result['mtime'] = date(Config::$dateFormat,filemtime(Config::$xdebugOutputDir.$dataFile)); + $result['mtime'] = date(Webgrind_Config::$dateFormat,filemtime(Webgrind_Config::$xdebugOutputDir.$dataFile)); $result['summedSelfTime'] = $summedCost; echo json_encode($result); break; @@ -80,10 +80,30 @@ switch(get('op')){ echo json_encode($result); break; + case 'fileviewer': + $file = get('file'); + $line = get('line'); + + if($file && $file!=''){ + $message = ''; + if(!file_exists($file)){ + $message = $file.' does not exist.'; + } else if(!is_readable($file)){ + $message = $file.' is not readable.'; + } else if(is_dir($file)){ + $message = $file.' is a directory.'; + } + } else { + $message = 'No file to view'; + } + require 'templates/fileviewer.phtml'; + + break; default: require 'templates/index.phtml'; } + function get($param, $default=false){ return (isset($_GET[$param])? $_GET[$param] : $default); } diff --git a/lib/FileHandler.php b/lib/FileHandler.php index 790ac6a..40901c2 100644 --- a/lib/FileHandler.php +++ b/lib/FileHandler.php @@ -13,11 +13,11 @@ class Webgrind_FileHandler{ private function __construct(){ - $files = $this->getFiles(Config::$xdebugOutputFormat, Config::$xdebugOutputDir); + $files = $this->getFiles(Webgrind_Config::$xdebugOutputFormat, Webgrind_Config::$xdebugOutputDir); - $prepFiles = $this->getFiles('/\\'.Config::$preprocessedSuffix.'$/', Config::$storageDir); + $prepFiles = $this->getFiles('/\\'.Webgrind_Config::$preprocessedSuffix.'$/', Webgrind_Config::$storageDir); foreach($prepFiles as $fileName=>$prepFile){ - $fileName = str_replace(Config::$preprocessedSuffix,'',$fileName); + $fileName = str_replace(Webgrind_Config::$preprocessedSuffix,'',$fileName); if(!isset($files[$fileName]) || $files[$fileName]['mtime']>$prepFile['mtime'] ) unlink($prepFile['absoluteFilename']); @@ -67,12 +67,12 @@ class Webgrind_FileHandler{ } public function getTraceReader($file){ - $prepFile = Config::$storageDir.$file.Config::$preprocessedSuffix; + $prepFile = Webgrind_Config::$storageDir.$file.Webgrind_Config::$preprocessedSuffix; try{ $r = new Webgrind_Reader($prepFile); } catch (Exception $e){ // Preprocessed file does not exist or other error - $cg = new Webgrind_Preprocessor(Config::$xdebugOutputDir.$file, $prepFile); + $cg = new Webgrind_Preprocessor(Webgrind_Config::$xdebugOutputDir.$file, $prepFile); $cg->parse(); $r = new Webgrind_Reader($prepFile); } diff --git a/templates/fileviewer.phtml b/templates/fileviewer.phtml index 1febeb6..a93e845 100644 --- a/templates/fileviewer.phtml +++ b/templates/fileviewer.phtml @@ -21,6 +21,19 @@ <body> <?=$file?> <div class="hr"></div> - <?=$content?> + <?if($message==''):?> + <code class="num"> + <? + $lineCount = count(file($file)); + for($i = 1; $i<=$lineCount; $i++):?> + <?if($i==$line):?><span id="line_emph"> </span><?endif?> + <?=$i?><br /> + <?endfor?> + </code> + <?=highlight_file($file, true)?> + <?else:?> + <br /> + <center><b><?=$message?></b></center> + <?endif?> </body> </html>
\ No newline at end of file diff --git a/templates/index.phtml b/templates/index.phtml index dba39a0..efcae3b 100644 --- a/templates/index.phtml +++ b/templates/index.phtml @@ -11,7 +11,7 @@ <script src="js/jquery.selectboxes.js" type="text/javascript" charset="utf-8"></script> <script src="js/sprintf.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8"> - var fileUrlFormat = '<?=Config::$fileUrlFormat?>'; + var fileUrlFormat = '<?=Webgrind_Config::$fileUrlFormat?>'; var currentDataFile = null; var callInfoLoaded = new Array(); function getOptions(){ @@ -192,8 +192,8 @@ <div style="float:right;"> <label style="margin:0 5px">as</label> <select id="costFormat" name="costFormat"> - <option value="percentual" <?=(Config::$defaultCostformat=='percentual') ? 'selected' : ''?>>percentual</option> - <option value="absolute" <?=(Config::$defaultCostformat=='absolute') ? 'selected' : ''?>>absolute</option> + <option value="percentual" <?=(Webgrind_Config::$defaultCostformat=='percentual') ? 'selected' : ''?>>percentual</option> + <option value="absolute" <?=(Webgrind_Config::$defaultCostformat=='absolute') ? 'selected' : ''?>>absolute</option> </select> values </div> <div style="float:right;"> @@ -210,13 +210,13 @@ <label style="margin:0 5px">Show</label> <select id="showFraction" name="showFraction"> <?for($i=100; $i>0; $i-=10):?> - <option value="<?=$i/100?>" <?if($i==Config::$defaultFunctionPercentage):?>selected="selected"<?endif;?>><?=$i?>%</option> + <option value="<?=$i/100?>" <?if($i==Webgrind_Config::$defaultFunctionPercentage):?>selected="selected"<?endif;?>><?=$i?>%</option> <?endfor;?> </select> </div> <div style="clear:both;"></div> <div style="margin:0 45px"> - <input type="checkbox" name="hideInternals" value="1" <?=(Config::$defaultHideInternalFunctions==1) ? 'checked' : ''?> id="hideInternals"> + <input type="checkbox" name="hideInternals" value="1" <?=(Webgrind_Config::$defaultHideInternalFunctions==1) ? 'checked' : ''?> id="hideInternals"> <label for="hideInternals">Hide PHP functions</label> </div> </form> |