Change Logging class / method name and Debug Support for backtrace

Debug Support:
getCallerClass now returns level 1 class from the trace like the
getCallerMethod. There is also a new getCallerClassMethod that returns
namespace\class->method (or :: for static).

getCallerTopLevelClass works like getCallerClass did before and returns
the TOP level (first entry on the call stack that has a set class name)

Logging:
Do not use the Support getCallerClass/Method/File but call it inside
and use level 2 in trace to get the data we need For the last call
before debug call
Also update the strack trace for the debug call to use ->/:: for method
type
This commit is contained in:
Clemens Schwaighofer
2023-08-22 13:08:08 +09:00
parent 5b8e4e4e3e
commit 4f2ac2ed1b
12 changed files with 227 additions and 75 deletions

View File

@@ -14,25 +14,33 @@
declare(strict_types=1);
namespace Test;
namespace TestCalls;
use Test\DB;
use TestCalls\DB;
class Test
{
/** @var DB\TestDB */
private $test_db;
/** @var \CoreLibs\DB\IO */
public \CoreLibs\DB\IO $db;
/** @var \CoreLibs\Logging\Logging */
public \CoreLibs\Logging\Logging $log;
public function __construct(
\CoreLibs\DB\IO $db,
\CoreLibs\Logging\Logging $log
) {
$this->db = $db;
$this->log = $log;
// calls all tests
$this->testPrivate();
$this->testProtected();
$this->testPublic();
// call intern
$this->test_db = new DB\TestDB($log);
$this->test_db = new DB\TestDB($this);
}
public function __destruct()
@@ -82,6 +90,28 @@ class Test
{
$this->test_db->testRunDB();
}
/**
* Undocumented function
*
* @return void
*/
public function testDbCall(): void
{
$q = <<<SQL
SELECT
type, sdate, integer
FROM
foobar
LIMIT
1;
SQL;
if (is_array($res = $this->db->dbReturnRow($q))) {
print "OUTPUT: " . $this->log->prAr($res);
} else {
$this->log->error('Failure to run query');
}
}
}
// __END__