Corban, dear! — отладочная библиотека для PHP. Простая в установке и использовании библиотека существенно упростит процесс отладки PHP приложений.
Использование
Библиотека предоставляет несколько функций упрощающих отладку приложения:
- cd(), cdx() — вывод информации о переменной;
- cm(), cmx() — вывод отладочного сообщения;
- ci(), cs() — инициализация и вывод таймера.
Простой пример использования:
include_once('corban.lib.php'); cd ($_SERVER);
Подключение файла corban.lib.php
В PHP файл можно подключить несколькими способами: непосредственно в скрипте с помощью конструкций require или include, или же с помощью директивы auto_prepend_file, которую можно установить непосредственно в файле php.ini или же через файл .htaccess (рекомендуемый вариант). Предварительно можно определить конфигурационные константы библиотеки.
Пример подключения непосредственно в скрипте с помощью конструкций require или include:
define('CORBAN_OUTPUT', 4); include_once('corban.lib.php');
Пример подключения с помощью директивы auto_prepend_file через файл .htaccess:
SetEnv CORBAN_OUTPUT 4 php_value auto_prepend_file /path/to/corban.lib.php
Примечание: При необходимости, отключить подключение файла можно с помощью специального значения none.
php_value auto_prepend_file none
Описание функций
cd($val, $msg=null, $die=false) — Функция выводит значение переменной (в том числе объектов и ресурсов) с комментариями. Параметры:
- $val — Переменная, значение которой необходимо вывести.
- $msg — Отображаемое при выводе название переменной и комментарий в формате «varname#comment», где «#» — разделитель (необязательный параметр, по умолчанию null).
- $die — Определяет прервать ли работу скрипта после вывода (необязательный параметр, по умолчанию false).
Пример:
$a = array (1, 2, 3); cd($a, 'a#Array a');
Вывод:
Array a $a [0] = 1 $a [1] = 2 $a [2] = 3
cdx($val, $msg=null) — Аналогична по работе вызову функции cd(), с установленным в true параметром $die.
cm($msg, $param=null, $die=false) — Функция выводит отладочное сообщение, и значение переменной, без информации о ней. Параметры:
- $msg — Отладочное сообщение.
- $param — Переменная (необязательный параметр, по умолчанию null).
- $die — Определяет прервать ли работу скрипта после вывода (необязательный параметр, по умолчанию false).
cmx($msg, $param=null) — Аналогична по работе вызову функции cm(), с установленным в true параметром $die.
ci($name=0) — Функция инициализирует таймер, с заданным именем. Используется вместе с cs(). Параметры:
- $name — Имя таймера (необязательный параметр).
cs($name=0, $comment=null) — Функция выводит значение таймера с заданным именем $name, или же таймер по умолчанию, если параметр не указан. Используется вместе с ci(). Параметры:
- $name — Имя таймера (необязательный параметр).
- $comment — Строка комментария.
Пример:
ci ('a'); sleep(10); cs ('a', 'Script execution time:');
Вывод:
Script execution time: 10.060
corban_fix_output() — Функция вставляет отладочный вывод перед закрывающим тегом </body>, тем самым предотвращая девалидацию html в следствии использования библиотеки. Необходимо вызвать до первого вывода данных скриптом.
corban_shutup() — Функция принудительно прекращает вывод отладочной информации. Её вызов необходим в случаях, когда необходимость в выводе отладочной информации отпадает, например при отдаче данных в виде json или же бинарных данных.
Конфигурационные константы библиотеки
CORBAN_OUTPUT, по умолчанию 2 (CORBAN_OUTPUT_BUFFER). Определяет тип отладочного вывода. Может принимать значения:
- 1 (CORBAN_OUTPUT_INLINE) для вывода непосредственно по мере вызова функции cd() и прочих,
- 2 (CORBAN_OUTPUT_BUFFER) для буферизированного вывода по окончании выполнения скрипта,
- 3 (CORBAN_OUTPUT_CONSOLE) для вывода во всплывающее окно,
- 4 (CORBAN_OUTPUT_FILE) для вывода в файл (дополнительно необходимо задать константу CORBAN_FILE_PATH и настроить права записи).
CORBAN_FORMAT, по умолчанию 1 (CORBAN_FORMAT_HTML). Определяет формат отладочного вывода. Может принимать значения:
- 1 (CORBAN_FORMAT_HTML) для вывода в формате html,
- 2 (CORBAN_FORMAT_TEXT) для вывода в виде текста.
CORBAN_FIX_OUTPUT, по умолчанию не определена. Предотвращает девалидацию html в следствии использования библиотеки. Может принимать любые значения.
CORBAN_FILE_PATH, по умолчанию не определена. Определяет путь к файлу corban.log, в который будет производиться отладочный вывод. Если константа не определена, то библиотека будет пытаться записывать данные в файл corban.log лежащий в папке с текущим выполняемым скриптом. Необходимо так же установить права записи на файл corban.log.
CORBAN_SHOW_CLASS_METHOD, по умолчанию не определена. Определяет выводить или нет методы объектов.
CORBAN_BLABLA, по умолчанию не определена. Определяет отображать или нет префикс (CORBAN_PREFIX) перед отладочным выводом.
Примечание: Установить значения констант через файл .htaccess можно с помощью директивы Apache SetEnv. Пример:
SetEnv CORBAN_OUTPUT 4
Валидный html
По умолчанию, при буферизированном выводе (CORBAN_OUTPUT_BUFFER) или же выводе во всплывающее окно (CORBAN_OUTPUT_CONSOLE), для предотвращения внесения искажений в дизайн, все отладочные сообщения выводятся после закрывающего тега </body>. Это приводит к тому, что html код перестает быть валидным. Для того чтобы избежать этого необходимо либо перед подключением библиотеки определить константу CORBAN_FIX_OUTPUT, либо после подключения, но обязательно перед выводом , вызвать функцию corban_fix_output(). После этого все отладочные сообщения будут выведены перед закрывающим тегом </body>.
История создания
Работа над библиотекой «Corban, dear!» была начата в компании Softerra в 1999 году, на заре ее становления. В 2002 году она была выложена под лицензией GNU GPL в составе PHP Developer Library. В дальнейшем библиотека поддерживалась и развивалась вне пределов компании.
«Corban» — неправильное написание имени Корбена Далласа (Korben Dallas) из фильма «Пятый элемент» (The Fifth Element).