diff --git a/README.md b/README.md index 9557a0a..a598d84 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ 1. Распакуйте содержимое архива в новую папку на вашем локальном компьютере. 2. Загрузить эту папку целиком через FTP-клиент на ваш хост. -3. Вам также может потребоваться установить права доступа (CHMOD 777) рекурсивно, на папки /tmp/cache/, /tmp/session/ и /uploads/, если ваш хостинг не установливает это по умолчанию. -4. Также вам может потребоваться установить права доступа (CHMOD 777) рекурсивно, на файлы inc/db.config.php и inc/config.inc.php, если ваш хостинг не установливает это по умолчанию. +3. Вам также может потребоваться установить права доступа (CHMOD 777) рекурсивно, на папки /tmp/cache/, /tmp/session/ и /uploads/, если ваш хостинг не устанавливает это по умолчанию. +4. Также вам может потребоваться установить права доступа (CHMOD 777) рекурсивно, на файлы inc/db.config.php и inc/config.inc.php, если ваш хостинг не устанавливает это по умолчанию. 5. Наберите http://адрес вашего сайта/ в браузере. 6. Следуйте инструкциям. 7. После установки системы настоятельно рекомендуем устанавливать права доступа на папку uploads не выше CHMOD 755. diff --git a/admin/index.php b/admin/index.php index e4f9acd..e749fc7 100644 --- a/admin/index.php +++ b/admin/index.php @@ -132,6 +132,6 @@ $AVE_Template->display($tpl); // Статистика - //if (defined('PROFILING') && PROFILING) - // echo get_statistic(1, 1, 1, 1); + if (defined('PROFILING_ADMIN') && PROFILING_ADMIN) + echo Debug::displayInfo(); ?> \ No newline at end of file diff --git a/class/class.debug.php b/class/class.debug.php index ef642a8..5df0cc9 100644 --- a/class/class.debug.php +++ b/class/class.debug.php @@ -20,9 +20,11 @@ class Debug { - protected static $time = array(); + protected static $time = []; - protected static $memory = array(); + protected static $memory = []; + + protected static $_debug = []; public function __construct() @@ -607,6 +609,119 @@ } + /** + * Функция для вывода переменной (для отладки) + * + * @param mixed $var любая переменная + * @param bool $exit + * @param null $bg + * @param bool $echo + * + * @return false|null|string|string[] + */ + public static function _($var, $_bg = null, $from = '') + { + $code = ''; + + $backtrace = debug_backtrace(); + + $backtrace = $backtrace[0]; + + if (preg_match('/([^\(]*)\((.*)\)/i', $backtrace['file'])) + { + preg_match('/([^\(]*)\((.*)\)/i', $backtrace['file'], $match); + $file = $match[1]; + } + + $fh = fopen((isset($file) + ? $file + : $backtrace['file']), 'r'); + + $line = 0; + + while (++$line <= $backtrace['line']) + $code = fgets($fh); + + fclose($fh); + + preg_match('/' . __FUNCTION__ . '\s*\((.*)\)\s*;/u', $code, $name); + + unset ($code, $backtrace); + + ob_start(); + + var_dump($var); + + $var_dump = ob_get_contents(); + + $var_dump = preg_replace('/=>(\s+|\s$)/', ' => ', $var_dump); + + $var_dump = htmlspecialchars($var_dump); + + $var_dump = preg_replace('/(=>)/', '$1', $var_dump); + + ob_end_clean(); + + if (! empty($name)) + { + $fn_name = explode(',', $name[1]); + $fn_name = array_shift($fn_name); + } + else + $fn_name = 'EVAL'; + + if ($_bg) + $bg = 'style="background: #' . $_bg . ';"'; + else + $bg = ''; + + $var_dump = ' + +
+
+ var_dump(' . trim($fn_name) . ') ' . $from . ' +
+ '.self::_trace().' +
+
'
+				. $var_dump .
+				'
+
+
+ '; + + self::$_debug[] = $var_dump; + } + + /** * Функция для трейсинга дебаггера * @@ -793,6 +908,18 @@ $stat = self::_stat_get('request'); break; + case 'files': + $stat = self::_stat_get('files'); + break; + + case 'cookie': + $stat = self::_stat_get('cookie'); + break; + + case 'env': + $stat = self::_stat_get('env'); + break; + case 'session': $stat = self::_stat_get('session'); break; @@ -824,10 +951,16 @@ var_dump($_POST); else if ($type == 'request') var_dump($_REQUEST); + else if ($type == 'files') + var_dump($_FILES); + else if ($type == 'cookie') + var_dump($_COOKIE); else if ($type == 'session') var_dump($_SESSION); else if ($type == 'server') var_dump($_SERVER); + else if ($type == 'env') + var_dump($_ENV); else if ($type == 'globals') var_dump($GLOBALS); $stat = ob_get_contents(); @@ -855,23 +988,28 @@ $out .= PHP_EOL; $out .= ''; $out .= PHP_EOL; + $out .= '
'; + $out .= PHP_EOL; $out .= ' -
-
- +
+
    +
  • Timers
  • +
  • $_GET
  • +
  • $_POST
  • +
  • $_REQUEST
  • +
  • $_FILES
  • +
  • $_COOKIE
  • +
  • $_SESSION
  • +
  • $_SERVER
  • +
  • $_ENV
  • +
  • $GLOBALS
  • +
  • MySQL
  • +
  • Trace
  • +
  • Debug
  • +
'; $out .= PHP_EOL; - $out .= '