|
|
|
|
|
|
Всякое |
Krumo versus print_r() & var_dump()Заголовок у заметки, конечно, не очень получился. Какое противостояние может быть между боксером-тяжеловесом и забиякой-пятикласником? С появлением Krumo обе вышеуказанные функции PHP можно смело отправлять на свалку истории. Krumo представляет из себя парсер переменных и конфигурационной информации PHP, реализующий хорошо читаемый древовидный вывод сложных переменных и объектов этого языка. Все нескалярные значения в выводе, а также большие тексты, свернуты. Их полный просмотр осуществляется кликом мыши по имени переменной, что позволяет быстро и удобно просмотреть самые сложные их значения. Оформлен парсер в виде одной функции krumo() и одного одноимённого класса. Сайт проекта: http://krumo.kaloyan.info/ Проект также размещен на http://krumo.sourceforge.net Скачанный архив распакуйте в папку вашего php-проекта и подключите к скриптам следующим кодом: require_once "class.krumo.php"; Если ваш компьютер постоянно используется для разработки веб-проектов, то лучшим способом будет не запихивание krumo в каждый проект, а размещение его в папке, указанной в переменной PHP INCLUDE_PATH. В этом случае нужный файл будет сразу найден в любом скрипте PHP. Использовать Krumo проще простого: krumo($var); И в этом месте вы получите готовый HTML-код значения переменной $var. Допустимо указание нескольких переменных при вызове функции krumo($var1, $var2, $var3,...); В случае, если результат работы функции вам нужен в другом месте, придется воспользоваться контролем вывода: ob_start(); krumo($var); $out = ob_get_contents(); ob_end_clean(); ... print $out; Кроме использования функции krumo(), доступны методы класса krumo. // Вывод переменной $var, синоним krumo() krumo::dump($var); // Вывод функции debug_backtrace() // Функция выводит все вложенные вызовы функций // и методов классов скрипта до этого места krumo::backtrace(); // Вывод всех декларированных классов krumo::classes(); // Вывод всех декларированных интерфейсов krumo::interfaces(); // Вывод всех подключенных к скрипту файлов krumo::includes(); // Вывод всех функций, как определенных пользователем, так и внутренних krumo::functions(); // Вывод всех объявленных констант krumo::defines(); // Вывод всех загруженных расширений PHP krumo::extensions(); // Вывод всех заголовков для данного HTTP-запроса krumo::headers(); // Вывод всех параметров из файла конфигурации PHP - php.ini krumo::phpini(); // Вывод всех параметров конфигурации PHP krumo::conf(); // Вывод всех директорий из переменной INCLUDE_PATH krumo::path(); // Вывод всех параметров конфигурации из файла $ini_file krumo::ini($ini_file); // Вывод содержимого суперглобальных массивов PHP-скрипта //$_SERVER, $_ENV, $_COOKIE, $_SESSION, $_REQUEST, $_GET, $_POST krumo::server(); krumo::env(); krumo::cookie(); krumo::session(); krumo::request(); krumo::get(); krumo::post(); Имеются также две функции для управления самим классом krumo // Запретить вывод отладочных сообщений всего что ниже krumo::disable(); // Этот вывод показан не будет krumo::includes(); // Разрешить отладочный вывод krumo::enable(); // Этот вывод будет показан krumo::classes(); Думаю вышеописанного функционала достаточно для того, чтобы отыскать практически любую трудноуловимую ошибку. В качестве дополнительной библиотеки krumo входит в состав некоторых популярных систем управления сайтами. В Drupal он входит в состав многофункционального модуля devel (http://drupal.org/project/devel/). А для Wordpress доступна оболочка над krumo - модуль wp-debug (http://www.siolon.com/blog/wp-debug/). |
|
Direqtor Home Page by ASIADATA. |
|
Отправить комментарий