Skip to content

Instantly share code, notes, and snippets.

@smartdeal
Created November 14, 2016 13:13
Show Gist options
  • Save smartdeal/6fcc9fc05ad4afbcd2af58b269d53b71 to your computer and use it in GitHub Desktop.
Save smartdeal/6fcc9fc05ad4afbcd2af58b269d53b71 to your computer and use it in GitHub Desktop.
PHP debug to js console
<?php
class PHPDebug {
function __construct() {
if (!defined("LOG")) define("LOG",1);
if (!defined("INFO")) define("INFO",2);
if (!defined("WARN")) define("WARN",3);
if (!defined("ERROR")) define("ERROR",4);
define("NL","\r\n");
echo '<script type="text/javascript">'.NL;
/// Данный код предназначен для браузеров без консоли
echo 'if (!window.console) console = {};';
echo 'console.log = console.log || function(){};';
echo 'console.warn = console.warn || function(){};';
echo 'console.error = console.error || function(){};';
echo 'console.info = console.info || function(){};';
echo 'console.debug = console.debug || function(){};';
echo '</script>';
/// Конец секции для браузеров без консоли
}
function debug($name, $var = null, $type = LOG) {
echo '<script type="text/javascript">'.NL;
switch($type) {
case LOG:
echo 'console.log("'.$name.'");'.NL;
break;
case INFO:
echo 'console.info("'.$name.'");'.NL;
break;
case WARN:
echo 'console.warn("'.$name.'");'.NL;
break;
case ERROR:
echo 'console.error("'.$name.'");'.NL;
break;
}
if (!empty($var)) {
if (is_object($var) || is_array($var)) {
$object = json_encode($var);
echo 'var object'.preg_replace('~[^A-Z|0-9]~i',"_",$name).' = \''.str_replace("'","\'",$object).'\';'.NL;
echo 'var val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).' = eval("(" + object'.preg_replace('~[^A-Z|0-9]~i',"_",$name).' + ")" );'.NL;
switch($type) {
case LOG:
echo 'console.debug(val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).');'.NL;
break;
case INFO:
echo 'console.info(val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).');'.NL;
break;
case WARN:
echo 'console.warn(val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).');'.NL;
break;
case ERROR:
echo 'console.error(val'.preg_replace('~[^A-Z|0-9]~i',"_",$name).');'.NL;
break;
}
} else {
switch($type) {
case LOG:
echo 'console.debug("'.str_replace('"','\\"',$var).'");'.NL;
break;
case INFO:
echo 'console.info("'.str_replace('"','\\"',$var).'");'.NL;
break;
case WARN:
echo 'console.warn("'.str_replace('"','\\"',$var).'");'.NL;
break;
case ERROR:
echo 'console.error("'.str_replace('"','\\"',$var).'");'.NL;
break;
}
}
}
echo '</script>'.NL;
}
}
?>
Usage:
require_once(TEMPLATEPATH."/PHPDebug.php");
$debug = new PHPDebug();
$debug->debug("Переменная Z");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment