понеделник, август 25, 2008

Krumo - по-лесния начин


Понеже напоследък се правя на php developer често ми се налага да прекарвам "приятни" часове в debug-ване. И тъй като тази работа и без това е бавна и изнервяща, днес намерих начин да я направя поне малко по-човешка. Става въпрос за един български проект - Krumo.
Автора на проекта е небезизвестния Mrasnika. Странното е, че разбрах този факт малко след като тествах приложението защото сайта е на английски и по нищо не дава вид, че се разработва от българи/н.
Идеята му е, че вместо да се използва var_dump и print_r, които изкарват един доста inhumane output, е по-лесно да се използва доста по-красивия и лесен за разбиране интерфейс на krumo.
В случая съм принтнал $_POST и един стринг, който ми държи заявката към mysql. Можете да видите на шот-а, че всички масиви и променливи, които се извеждат от krumo излизат в приятни drop down блокове (ще ме извинявате за английския), което пък е много удобно ако на страницата и без това имате 1000 други елемента.
Инсталацията изисква просто да настроите url-ите в един конфигурационен файл и да include-нете class.krumo.php. След това просто викате :
krumo($_POST)
или каквото там ви трябва.














На по-малките картинки съм принтнал три пъти един и същ масив.
Първия път е просто:
print_r($array);
Изхода е около 3 екрана и ако ви се струва ок, то значи нещо наистина не ви е наред :D
Втория път съм приложил ултра мега хакерския метод за оформяне:
echo "pre";
print_r($array);
echo "/pre";
(стрелките на html таговете ги няма заради blogger, rrrr)
Това до някъде оправя положението, но този път изхода е около 7-8 екрана.
Третия вариант е просто:
krumo($array);
Сгънато заема 2-3 реда и можете по отделно да видите всеки елемент от масива.
Сами можете да видите разликата.
Опитайте го, вярно е, че можете и без него, но пък така е доста по-лесно.

* това не е платена публикация :P

5 коментара:

ivanatora каза...

Изглежда интересно!
Ама най-хахерския начин за дъмпване на масиви си е:
foreach (@arr){
print "$_\n";
}
Или ако масива е асоциативен (недайбоже!):
foreach (keys %arr){
print "$_ -> $arr{$_}\n";
}

Калоян каза...

"Marsnika" ли ? ;) Че чак и "небезизвестния" ;) Значи пише се Mrasnika, но и Калоян да напишеш пак ще е вярно.

Иначе Krumo е интересен проект, но за съжаление нямам време последните 18 месеца да се занимавам с него (или с каквото и да е друго -- като например Asido).

gotha каза...

:D
Уеуе майко, изложих се. Понякога някои пръсти пишат по-бързо от други ;) Оправено.

Абе дали наистина съществува понятието известен програмист? Сещате се, там с фенките, светските събирания и т.н. :D

btw, кефя се, че пускате коментари, така знам, че поне двама човека ми четат блога. :P

Калоян каза...

Аз също пиша с много грешки -- и правописни, и граматични, и т.н. Ако има начин поне правописните грешки да се оправят в WordPress ще е супер.

Иначе, каква слава, какви фенки ? Стига глупости ;) Иначе преди време, преди години, аз още бях студент, но бях почнал в "плантаторския" бизнес, и един колега като кандидатствал за работа, на края на интервято когато го попитали има ли какво да добави, той казал "Да, познавам Калоян!" ;) Много се смях тогава.

ivanatora каза...

Четем, даже и го събираме в Google Reader ;)