Added more tests to debug, form, system class tests IO: max calls check return variable name was wrong Logging: changed from preg to str replace for HTMLPRE tag clean up Debug: empty string debug, returns filled string with dummy text if string is empty() System: return base name as is array Updated Array IO check for loading control array not only from file, but from direct variable if set or from an array filled with control array
162 lines
4.6 KiB
PHP
162 lines
4.6 KiB
PHP
<?php // phpcs:ignore warning
|
|
declare(strict_types=1);
|
|
/**
|
|
* @phan-file-suppress PhanTypeSuspiciousStringExpression
|
|
*/
|
|
|
|
// all the settings are overruled by config
|
|
$DEBUG_ALL_OVERRIDE = true; // set to 1 to debug on live/remote server locations
|
|
$DEBUG_ALL = true;
|
|
$PRINT_ALL = false;
|
|
$ECHO_ALL = true;
|
|
$DB_DEBUG = true;
|
|
|
|
if ($DEBUG_ALL) {
|
|
error_reporting(E_ALL | E_STRICT | E_ERROR | E_WARNING | E_PARSE | E_COMPILE_ERROR);
|
|
}
|
|
|
|
ob_start();
|
|
|
|
// basic class test file
|
|
define('USE_DATABASE', false);
|
|
// sample config
|
|
require 'config.php';
|
|
// set session name
|
|
if (!defined('SET_SESSION_NAME')) {
|
|
define('SET_SESSION_NAME', EDIT_SESSION_NAME);
|
|
}
|
|
// define log file id
|
|
$LOG_FILE_ID = 'classTest-debug';
|
|
ob_end_flush();
|
|
// override ECHO ALL FALSE
|
|
$ECHO_ALL = true;
|
|
|
|
use CoreLibs\Debug\Support as DebugSupport;
|
|
use CoreLibs\Debug\FileWriter;
|
|
|
|
$basic = new CoreLibs\Basic();
|
|
$debug = new CoreLibs\Debug\Logging();
|
|
$debug_support_class = 'CoreLibs\Debug\Support';
|
|
$debug_logging_class = 'CoreLibs\Debug\Logging';
|
|
|
|
print "<html><head><title>TEST CLASS: DEBUG</title><head>";
|
|
print "<body>";
|
|
print '<div><a href="class_test.php">Class Test Master</a></div>';
|
|
|
|
function test()
|
|
{
|
|
return DebugSupport::getCallerMethod(1);
|
|
}
|
|
|
|
print "S::GETCALLERMETHOD: ".DebugSupport::getCallerMethod(0)."<br>";
|
|
print "S::GETCALLERMETHOD: ".test()."<br>";
|
|
print "S::PRINTAR: ".DebugSupport::printAr(['Foo', 'Bar'])."<br>";
|
|
print "V-S::PRINTAR: ".$debug_support_class::printAr(['Foo', 'Bar'])."<br>";
|
|
print "S::DEBUSTRING(s): ".DebugSupport::debugString('SET')."<br>";
|
|
print "S::DEBUSTRING(''): ".DebugSupport::debugString('')."<br>";
|
|
print "S::DEBUSTRING(,s): ".DebugSupport::debugString(null, '{-}')."<br>";
|
|
|
|
// debug
|
|
print "C->DEBUG: ".$debug->debug('CLASS-TEST-DEBUG', 'Class Test Debug')."<br>";
|
|
print "C->DEBUG(html): ".$debug->debug('CLASS-TEST-DEBUG', 'HTML TAG<br><b>BOLD</b>')."<br>";
|
|
print "C->DEBUG(html,strip): ".$debug->debug('CLASS-TEST-DEBUG', 'HTML TAG<br><b>BOLD</b>', true)."<br>";
|
|
print "C->PRINTERRORMSG: <br>".$debug->printErrorMsg()."<br>";
|
|
echo "<b>CLASS DEBUG CALL</b><br>";
|
|
|
|
// @codingStandardsIgnoreLine
|
|
class TestL
|
|
{
|
|
public $log;
|
|
public function __construct()
|
|
{
|
|
$this->log = new CoreLibs\Debug\Logging();
|
|
}
|
|
public function test(string $ts = null)
|
|
{
|
|
print "* GETCALLERCLASS(INSIDE CLASS): ".\CoreLibs\Debug\Support::getCallerClass()."<br>";
|
|
$this->log->debug('TESTL', 'Logging in class testL'.($ts !== null ? ': '.$ts : ''));
|
|
$this->log->debug('TESTL', 'Some other message');
|
|
return true;
|
|
}
|
|
}
|
|
// @codingStandardsIgnoreLine
|
|
class TestR extends TestL
|
|
{
|
|
public $foo;
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
public function subTest()
|
|
{
|
|
print "** GETCALLERCLASS(INSIDE EXTND CLASS): ".\CoreLibs\Debug\Support::getCallerClass()."<br>";
|
|
$this->log->debug('TESTR', 'Logging in class testR (extends testL)');
|
|
$this->test('TESTR INSIDE');
|
|
$this->log->debug('TESTR', 'Array: '.$this->log->prAr(['a', 'b']).', Other: '.$this->log->prAr(['a', 'b']));
|
|
return true;
|
|
}
|
|
}
|
|
$tl = new TestL();
|
|
print "CLASS: LOG ECHO: ".(string)$tl->log->getLogLevelAll('echo')."<br>";
|
|
print "CLASS: DEBUG: ".$tl->test()."<br>";
|
|
print "CLASS: PRINTERRORMSG: <br>".$tl->log->printErrorMsg()."<br>";
|
|
$tr = new TestR();
|
|
print "CLASS: LOG ECHO: ".(string)$tr->log->getLogLevelAll('echo')."<br>";
|
|
print "CLASS EXTEND: DEBUG/tl: ".$tr->test('TESTR OUTSIDE')."<br>";
|
|
print "CLASS EXTEND: DEBUG/tr: ".$tr->subTest()."<br>";
|
|
print "CLASS EXTEND: PRINTERRORMSG: <br>".$tr->log->printErrorMsg()."<br>";
|
|
|
|
// test attaching a logger from outside
|
|
// @codingStandardsIgnoreLine
|
|
class AttachOutside
|
|
{
|
|
public $log;
|
|
public function __construct(object $logger_class)
|
|
{
|
|
$this->log = $logger_class;
|
|
}
|
|
public function test()
|
|
{
|
|
$this->log->debug('ATTACHOUTSIDE', 'A test');
|
|
return get_class($this);
|
|
}
|
|
}
|
|
$ao = new AttachOutside($basic->log);
|
|
print "AO-CLASS: DEBUG: ".$ao->test()."<br>";
|
|
|
|
// @codingStandardsIgnoreLine
|
|
class AttachFull
|
|
{
|
|
public $main;
|
|
public function __construct(object $class)
|
|
{
|
|
$this->main = $class;
|
|
}
|
|
public function test()
|
|
{
|
|
// should trigger deprecated
|
|
return $this->main->rgb2hex(2, 3, 4);
|
|
}
|
|
}
|
|
|
|
$af = new AttachFull($basic);
|
|
// should trigger deprecated
|
|
print "DEPREACTEDTEST: ".$af->test()."<br>";
|
|
|
|
|
|
print "GETCALLERCLASS(NON CLASS): ".\CoreLibs\Debug\Support::getCallerClass()."<br>";
|
|
|
|
// fdebug
|
|
print "S::FSETFILENAME: ".FileWriter::fsetFilename('class_test_debug_file.log')."<br>";
|
|
print "S::FDEBUG: ".FileWriter::fdebug('CLASS TEST DEBUG FILE: '.date('Y-m-d H:i:s'))."<br>";
|
|
|
|
// error message
|
|
// future DEPRECATED
|
|
// $basic->debug('BASIC CLASS', 'Debug test');
|
|
$basic->log->debug('BASIC CLASS', 'Debug test');
|
|
print "BASIC PRINTERRORMSG:<br>".$basic->log->printErrorMsg();
|
|
|
|
print "</body></html>";
|
|
|
|
// __END__
|