summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroetting <jacob@oettinger.dk>2008-04-17 14:06:49 +0000
committeroetting <jacob@oettinger.dk>2008-04-17 14:06:49 +0000
commit27cda197b4a234a969f310b8466003ef3bea70a8 (patch)
tree53998597e6aace4586726d141569cf55a3d1d480
parent5d373dc6b6d8d2beeb1c2258e9aa5b76d29716ed (diff)
downloadwebgrind-27cda197b4a234a969f310b8466003ef3bea70a8.zip
webgrind-27cda197b4a234a969f310b8466003ef3bea70a8.tar.gz
webgrind-27cda197b4a234a969f310b8466003ef3bea70a8.tar.bz2
Namespaced config. Embedded filviewer into main controller (index.php)
-rw-r--r--config.php4
-rw-r--r--fileviewer.php30
-rw-r--r--index.php26
-rw-r--r--lib/FileHandler.php10
-rw-r--r--templates/fileviewer.phtml15
-rw-r--r--templates/index.phtml10
6 files changed, 49 insertions, 46 deletions
diff --git a/config.php b/config.php
index 49c6596..b087d0a 100644
--- a/config.php
+++ b/config.php
@@ -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">&nbsp;</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
diff --git a/index.php b/index.php
index e9268f3..c7f3ab4 100644
--- a/index.php
+++ b/index.php
@@ -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">&nbsp;</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>