Pull to refresh

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

Reading time 3 min
Views 31K


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

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

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

В статье:

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


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



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


image

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


image

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


image

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


image

Авторизация


image

Опции


image

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


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



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


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


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


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

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

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

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

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

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


Ваше мнение


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

Так же буду очень благодарен всем кто откликнется помочь в портировании PHP Console на другие языки.
Only registered users can participate in poll. Log in, please.
Актуально ли портирование расширения на другие языки
47.57% Python 137
23.96% Ruby 69
46.88% Node.js 135
17.01% Java 49
8.33% ASP 24
9.38% Perl 27
288 users voted. 304 users abstained.
Tags:
Hubs:
+30
Comments 50
Comments Comments 50

Articles