Вывод строк и переменных из PHP в консоль браузера

Одним из способов отладки PHP кода является вывод сообщений в консоль браузера. Этот метод позволяет разработчику получить подробную информацию о значении переменных, выполнении функций, при этом не показывая ее пользователю.

Для этого можно воспользоваться статическим классом:

  1. <?php
  2. /**
  3.  * Вывод строк и переменных из PHP в консоль браузера
  4.  */
  5. Class Console
  6. {
  7. static $message = array();
  8.  
  9. public static function out()
  10. {
  11. if (!empty(self::$message)) {
  12. echo '<script>';
  13. foreach(self::$message as $i => $items) {
  14. foreach($items as $item) {
  15. echo 'console.' . $i . "('" . addslashes($item) . "');";
  16. }
  17. }
  18. echo '</script>';
  19. }
  20. }
  21.  
  22. private static function _convertVals($args)
  23. {
  24. if (!empty($args)) {
  25.  
  26. $res = array();
  27. foreach($args as $item) {
  28. if (is_array($item)) {
  29. $res[] = json_encode($item, true);
  30. } else {
  31. $res[] = addslashes($item);
  32. }
  33. }
  34. return implode(' ', $res);
  35. }
  36. }
  37.  
  38. public static function log()
  39. {
  40. self::$message['log'][] = self::_convertVals(func_get_args());
  41. }
  42.  
  43. public static function info()
  44. {
  45. self::$message['info'][] = self::_convertVals(func_get_args());
  46. }
  47.  
  48. public static function warn()
  49. {
  50. self::$message['warn'][] = self::_convertVals(func_get_args());
  51. }
  52.  
  53. public static function error()
  54. {
  55. self::$message['error'][] = self::_convertVals(func_get_args());
  56. }
  57. }
  58. 

Метод Console::out() помещается в самый конец HTML-страницы/шаблона, он выводит JS-скрипт с console.log().
  1. ...
  2. <?php Console::out(); ?>
  3. </body>
  4. </html>

Методы Console::log(), Console::info(), Console::warn(), Console::error() задают переменные или строки для вывода, например:
  1. <?php
  2. Console::log('Текст 1', 'Текст 2');
  3. Console::log(array("foo", "bar", "hallo", "world"));
  4. Console::info('Инфо');
  5. Console::warn('Внимание!');
  6. Console::error('Ошибка!');


  24.03.24 / 15:03 | PHP |   109 | 1   0