Одним из способов отладки PHP кода является вывод сообщений в консоль браузера. Этот метод позволяет разработчику получить подробную информацию о значении переменных, выполнении функций, при этом не показывая ее пользователю.
Для этого можно воспользоваться статическим классом:
<?php
/**
* Вывод строк и переменных из PHP в консоль браузера
*/
Class Console
{
static $message = array();
static public function out()
{
if (!empty(self::$message)) {
echo '<script>';
foreach(self::$message as $i => $items) {
foreach($items as $item) {
echo 'console.' . $i . "('" . addslashes($item) . "');";
}
}
echo '</script>';
}
}
static private function _convertVals($args)
{
if (!empty($args)) {
$res = array();
foreach($args as $item) {
if (is_array($item)) {
$res[] = json_encode($item, true);
} else {
$res[] = addslashes($item);
}
}
return implode(' ', $res);
}
}
static public function log()
{
self::$message['log'][] = self::_convertVals(func_get_args());
}
static public function info()
{
self::$message['info'][] = self::_convertVals(func_get_args());
}
static public function warn()
{
self::$message['warn'][] = self::_convertVals(func_get_args());
}
static public function error()
{
self::$message['error'][] = self::_convertVals(func_get_args());
}
}
Метод Console::out()
помещается в самый конец HTML-страницы/шаблона, он выводит JS-скрипт с console.log()
.
Методы Console::log()
, Console::info()
, Console::warn()
, Console::error()
задают переменные или строки для вывода, например:
<?php
Console::log('Текст 1', 'Текст 2');
Console::log(array("foo", "bar", "hallo", "world"));
Console::info('Инфо');
Console::warn('Внимание!');
Console::error('Ошибка!');
static public -> to -> public static