- PVSM.RU - https://www.pvsm.ru -

PHP Console 3.0 — важнейшее обновление за 3 года

Прошло 3 года с момента выхода первой версии, о которой вы могли читать в статье Как подружить PHP с консолью Google Chrome [1]. За это время расширение набрало 43`000 активных пользователей [2], и, что не менее важно, в ноябре 2013 обновилось до версии 3.0. Несколько месяцев разработки, и получилась полностью переписанная, в несколько раз более функциональная версия.

Новый функционал PHP Console 3.0 [2]

  • Отладка PHP ошибок и исключений (было в v1.1)
  • Дамп переменных любого типа
  • Выполнение PHP кода удалённо
  • Защита соединения по паролю
  • Группировка данных отладки по URL запроса
  • Открытие файла-строки ошибки в вашей IDE по клику на кнопку в уведомлении
  • Копирование данных ошибки/дампа в буфер обмена(для тестеров)
  • Новый клиент-сервер протокол без ограничений на размер данных
  • Новая PHP библиотека [3] на GitHub
  • Новое расширение для Yii [4]
  • И многое другое...

В статье:

  • Скриншоты
  • Видео
  • Список функций Google Chrome расширения
  • Список функций PHP библиотеки
  • Голосование за партирование на другие языки

Скриншоты (кликабельно)

Вывод PHP ошибок и исключений

image [5]

Дамп переменных любого типа

image [6]

Выполнение PHP кода удалённо

image [7]

Уведомления о JavaScript ошибках

image [8]

Авторизация

image

Опции

image

Видео (см. в HD)

Видео презентация с демонстрацией 90% функционала расширения. Также вы можете опробовать как это всё работает установив [2] расширение и перейдя на страницу примеров [9] тестового сервера (там кстати пример с PHP code remote execution [10] настроен на песочницу с PHP 5.5, кому интересно, можете поэкспериментировать с новыми возможностями 5.5, только сервак не вешайте плз :)

Функционал Google Chrome расширения PHP Console [2]

  • Никаких иконок в тулбаре, только в адресной строке(когда активно на сервере)
  • Настройка в попапе по клику на иконку в адресной строке
  • Ошибки PHP, исключения и дамп переменных в JavaScript консоли(Ctrl+Shift+J)
    • Группировка по URL запроса
    • Обработка данных с переадресованных страниц
    • Вывод backtrace ошибок и исключений
  • Ошибки PHP, исключения и дамп переменных в попап уведомлениях
    • Авто-закрытие по времени(см. опции)
    • Открытие файла-строки ошибки в вашей IDE по клику на кнопку в уведомлении(см. опции)
    • Копирование данных ошибки/дампа в буфер обмена(см. опции)
  • Игнорирование вывода ошибок по типу
  • Игнорирование вывода дампа переменных по тэгу
  • Обработка данных с любых источников: web-страница, AJAX, IFrame
  • Обрезает длинные пути к файлам
  • JavaScript ошибки в попап уведомлениях(см. опции)
    • Игнорирует повторяющиеся ошибки
    • Игнорирует ошибки Google Chrome расширений
    • Не переопределяет пользовательские обработчики ошибок
  • Авторизация по паролю
  • Выполнение PHP кода удалённо

Функционал PHP библиотеки [11]

  • Connector [12]
    • Работает с разными кодировками сервера
    • Оптимизированная инициализация(может быть испольован на серверах под нагрузками)
    • Поддерживает режим соединения только по HTTPS
    • Защита соединения только по списку разрешённых IP масок

  • Handler [13]
    • Обработка PHP ошибок(+фатальные и лимит памяти) и исключений
    • Игнорирование одинаковых ошибок
    • Вызов определённых ранее обработчиков ошибок и исключений

  • Dumper [14]
    • Дамп переменных любого типа
    • Дамп protected & private свойств и имени классов объектов
    • Ограничение дампов по уровню вложенности, количеству элементов, размеру элемента и дампа
    • Защита от рекурсий
    • Текстовое представление callback-ов и Closure
    • Автоопределение строки: файла и backtrace вызова дампа(опционально)

  • Auth [15]
    • Защита соединения по паролю
    • Авторизационные токены хешируются SHA-256, с привязкой к IP клиента

  • EvalProvider [16]
    • Удалённое выполнение PHP кода только в защищённом паролем режиме
    • Каждый запрос подписывается SHA-256 хешем от строки кода и авторизационного токена
    • Результат содержит: «output», «return» и «time» данные
    • Обработка PHP ошибок и исключений в выполняемом коде
    • Добавление переменных для быстрого доступа из кода выполняемого в терминале
    • Защита доступа к файловой системе посроедством PHP опции “open_basedir”

  • Helper [17] — регистрирует глобальный класс PC для более короткого вызова дампа переменных
  • PsrLogger [18] — реализация интерфейса PSR-3 [19] логгера
  • OldVersionAdapter [20] — для миграции с PhpConsole v1.* на v3.* без изменения кода

Ваше мнение

Код серверной части хоть и покрыт ~200 тестами, но так или иначе возможны какие-то недочёты и баги. Буду очень благодарен, если вы оставите отзыв [21] о расширении, и, если обнаружите какой-то баг или недостающий функционал, то сообщите об этом [22].

Так же буду очень благодарен всем кто откликнется помочь в портировании PHP Console на другие языки.

Автор: liaren

Источник [23]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/48499

Ссылки в тексте:

[1] Как подружить PHP с консолью Google Chrome: http://habrahabr.ru/post/107810/

[2] 43`000 активных пользователей: https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef

[3] PHP библиотека: https://github.com/barbushin/php-console/

[4] расширение для Yii: http://www.yiiframework.com/extension/php-console/

[5] Image: http://php-console.com/res/screenshot/errors_1280.png

[6] Image: http://php-console.com/res/screenshot/debug_1280.png

[7] Image: http://php-console.com/res/screenshot/eval_terminal_1280.png

[8] Image: http://php-console.com/res/screenshot/javascript_errors_1280.png

[9] страницу примеров: http://php-console.com/instance/examples/

[10] PHP code remote execution: http://php-console.com/instance/examples/#eval_terminal

[11] PHP библиотеки: https://github.com/barbushin/php-console

[12] Connector: https://github.com/barbushin/php-console/blob/master/src/PhpConsole/Connector.php

[13] Handler: https://github.com/barbushin/php-console/blob/master/src/PhpConsole/Handler.php

[14] Dumper: https://github.com/barbushin/php-console/blob/master/src/PhpConsole/Dumper.php

[15] Auth: https://github.com/barbushin/php-console/blob/master/src/PhpConsole/Auth.php

[16] EvalProvider: https://github.com/barbushin/php-console/blob/master/src/PhpConsole/EvalProvider.php

[17] Helper: https://github.com/barbushin/php-console/blob/master/src/PhpConsole/Helper.php

[18] PsrLogger: https://github.com/barbushin/php-console/blob/master/src/PhpConsole/PsrLogger.php

[19] PSR-3: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md

[20] OldVersionAdapter: https://github.com/barbushin/php-console/blob/master/src/PhpConsole/OldVersionAdapter.php

[21] оставите отзыв: https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef/reviews

[22] сообщите об этом: https://github.com/barbushin/php-console/wiki/How-to-report-bug-or-feature

[23] Источник: http://habrahabr.ru/post/201984/