PATH:
home
/
letacommog
/
letaweb
/
admin
/
classes
/
htmlpurifier
/
tests
<?php /** * Debugging tools. * * This file gives a developer a set of tools useful for performing code * consistency checks. This includes scoping code blocks to ensure that * only the interesting iteration of a loop gets outputted, a paint() * function that acts like var_dump() with pre tags, and conditional * printing. */ /* TODO * Integrate into SimpleTest so it tells us whether or not there were any not cleaned up debug calls. * Custom var_dump() that ignores blacklisted properties * DEPRECATE AND REMOVE ALL CALLS! */ /**#@+ * Convenience global functions. Corresponds to method on Debugger. */ function paint($mixed) { $Debugger = &Debugger::instance(); return $Debugger->paint($mixed); } function paintIf($mixed, $conditional) { $Debugger = &Debugger::instance(); return $Debugger->paintIf($mixed, $conditional); } function paintWhen($mixed, $scopes = array()) { $Debugger = &Debugger::instance(); return $Debugger->paintWhen($mixed, $scopes); } function paintIfWhen($mixed, $conditional, $scopes = array()) { $Debugger = &Debugger::instance(); return $Debugger->paintIfWhen($mixed, $conditional, $scopes); } function addScope($id = false) { $Debugger = &Debugger::instance(); return $Debugger->addScope($id); } function removeScope($id) { $Debugger = &Debugger::instance(); return $Debugger->removeScope($id); } function resetScopes() { $Debugger = &Debugger::instance(); return $Debugger->resetScopes(); } function isInScopes($array = array()) { $Debugger = &Debugger::instance(); return $Debugger->isInScopes($array); } /**#@-*/ /** * The debugging singleton. Most interesting stuff happens here. */ class Debugger { public $shouldPaint = false; public $paints = 0; public $current_scopes = array(); public $scope_nextID = 1; public $add_pre = true; public function Debugger() { $this->add_pre = !extension_loaded('xdebug'); } public static function &instance() { static $soleInstance = false; if (!$soleInstance) { $soleInstance = new self(); } return $soleInstance; } public function paintIf($mixed, $conditional) { if (!$conditional) { return; } $this->paint($mixed); } public function paintWhen($mixed, $scopes = array()) { if (!$this->isInScopes($scopes)) { return; } $this->paint($mixed); } public function paintIfWhen($mixed, $conditional, $scopes = array()) { if (!$conditional) { return; } if (!$this->isInScopes($scopes)) { return; } $this->paint($mixed); } public function paint($mixed) { ++$this->paints; if ($this->add_pre) { echo '<pre>'; } var_dump($mixed); if ($this->add_pre) { echo '</pre>'; } } public function addScope($id = false) { if ($id == false) { $id = $this->scope_nextID++; } $this->current_scopes[$id] = true; } public function removeScope($id) { if (isset($this->current_scopes[$id])) { unset($this->current_scopes[$id]); } } public function resetScopes() { $this->current_scopes = array(); $this->scope_nextID = 1; } public function isInScopes($scopes = array()) { if (empty($this->current_scopes)) { return false; } if (!is_array($scopes)) { $scopes = array($scopes); } foreach ($scopes as $scope_id) { if (empty($this->current_scopes[$scope_id])) { return false; } } if (empty($scopes)) { if ($this->scope_nextID == 1) { return false; } for ($i = 1; $i < $this->scope_nextID; ++$i) { if (empty($this->current_scopes[$i])) { return false; } } } return true; } } // vim: et sw=4 sts=4
[+]
..
[-] test_files.php
[edit]
[+]
FSTools
[-] common.php
[edit]
[-] CliTestCase.php
[edit]
[-] index.php
[edit]
[+]
HTMLPurifier
[-] path2class.func.php
[edit]
[-] multitest.php
[edit]
[+]
tmp
[-] HTMLPurifierTest.php
[edit]
[-] generate_mock_once.func.php
[edit]
[+]
PHPT
[-] Debugger.php
[edit]
[-] default_load.php
[edit]