Версия для печати |
Журналы: Игорь_Vasinsky -> PHP во сне и на яву |
09 сентября 2011 |
00:39 Отладка скриптов PHP, мониторинг глоб.массивов | ||||||||
Наверника все и не раз сталкивались с моментом, когда во время отладки кода теряются какие либо переменные глобальных массивов, или же вы просто забываете как называется елемент какого либо глобального массива. Этот момент легко контролировать 2 известными мне вариантами: 1. var_dump()
2. print_r (Более красивый и удобный)
Мне конечно удобней использовать 2й вариант, так как он выводит красивое дерево массива, но каждый раз писать (даже эти 3 строчки) мне становиться лень, темболее, что иногда это делаю я по нескольку десятков раз в день. Именно по этому я решил написать функцию, которая бы заменила эти 3 строчки в несколько символов; Назвал я её по началу globalsView(), но из-за лени переименовал в gview() (g-оставил, для красоты!) Функция имеет всего один аргумент в качестве которого можно указать один из 4 суперглобальных массивов: POST, GET, FILES, SESSION (но указываются они не как элементы php, а как строки - в ковычках)
Потом я один раз её подключаю, где нить в самом верх index.php (в моих сайтах он всегда роутер) Вызов функции, как я и говорил - несколько символов:
А работает она так (Как дополнительный вспомогательный BOX): ![]() Эх.. не победил я ещё регулярки (т.е. паттерны), а так бы раскрасить можно было по красивше. p/s Рассматривал так же возможность одного вызова, использовав 4 аргумента (под 4 массива) и так же если время будет - подкорректировать её под любой массив. Вообщем эти 2 момента оставлю на апгрейт. |
||||||||
Комментарии :6 |
Написал: neadekvat - 01:44 09/09/2011 |
Три строчки можно заменить одной:echo '<pre>'. print_r($arr, 1) .'</pre>'; |
Написал: Игорь_Vasinsky - 01:46 09/09/2011 |
не.. это не мой стиль)))) да и потом так симпотичней... |
Написал: inpost - 12:48 09/09/2011 |
ob_start(); echo "<pre>"; print_r($arr); echo "</pre>"; $buffer = ob_get_contents(); ob_end_clean(); Вот весь этот мусор заменяется одной: $buffer = '<pre>'. print_r($arr, 1) .'</pre>'; Весь этот мусор: if($globals == $_GET) $title = "<strong style='color:blue; font-size:15px'>Массив GET</strong>"; if($globals == $_FILES) $title = "<strong style='color:blue'>Массив FILES</strong>"; if($globals == $_SESSION) $title = "<strong style='color:blue'>Массив SESSION</strong>"; Заменяется коротко: Массив $globals; Ну и название: gview не особо нравится, у меня вообще wtf(); , то есть перевод: "что произошло?" ![]() А ещё, ты передаёшь так: gview("POST"); , а я бы передавал так: $_POST, то есть можно как глобальную переменную передавать, так и обычную переменную, допустим: $var, которая тоже может быть массивом, и которую тоже неплохо было бы проверить. И в заключение, обрати внимание на концовку моей функции, а именно на $status (п.с. после просмотра твоей функции, я свою немного перепишу, так же красиво сделаю): function wtf($data,$status = false) { echo '<pre>'; print_r($data); if(!$status) exit(); else echo '</pre>'; } |
Написал: Игорь_Vasinsky - 12:51 09/09/2011 |
да... апгрейдить да апгрейдить. |
Написал: Invis1ble - 22:54 16/10/2011 |
установка и настройка xdebug дает гораздо более вкусные плюшки ![]() |
Написал: Игорь_Vasinsky - 00:05 16/12/2011 |
ну ты сравнил... это оч просто для всех - по сравнению установкой и настройкой xdebug ![]() |
mJournal v1.05 © 2003-2004 by UriSoft and IBResource.ru |