Skip to content

Commit e9ef049

Browse files
authored
Merge pull request #173 from WebFiori/dev
Added Support for Logging PHP Variables in Browser's Console
2 parents 4c88760 + 4cab2ee commit e9ef049

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

webfiori/framework/ui/ui-functions.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
use webfiori\framework\exceptions\MissingLangException;
1313
use webfiori\framework\Language;
1414
use webfiori\framework\ui\WebPage;
15+
use webfiori\http\Response;
16+
use webfiori\json\JsonI;
17+
use webfiori\ui\HTMLNode;
1518

1619
/**
1720
* This file contains functions that can be used inside PHP templates. The
@@ -79,6 +82,29 @@ function description() {
7982
function title() : string {
8083
return call('getTitle');
8184
}
85+
/**
86+
* Display a message in web browser's console.
87+
*
88+
* @param mixed $message Any variable.
89+
*/
90+
function logVar($message) {
91+
$js = new HTMLNode('script');
92+
$type = gettype($message);
93+
if ($type == 'object' || $type == 'resource') {
94+
if (is_subclass_of($message, JsonI::class)) {
95+
$js->text("console.log(".$message->toJSON().")", false);
96+
} else {
97+
ob_start();
98+
var_dump($message);
99+
$js->text("console.log(`".trim(str_replace('\\', '\\\\', ob_get_clean()))."`)", false);
100+
}
101+
} else if ($type == 'string') {
102+
$js->text("console.log(`".$message."`)", false);
103+
} else {
104+
$js->text("console.log(".$message.")", false);
105+
}
106+
Response::write($js);
107+
}
82108
function call($methodName) {
83109
global $page;
84110

0 commit comments

Comments
 (0)