Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Дерево стека вызова с именами файлов и номерами строк
Форумы портала PHP.SU » PHP » Программирование на PHP » Дерево стека вызова с именами файлов и номерами строк

Страниц (1): [1]
 

1. eai - 30 Сентября, 2009 - 13:34:03 - перейти к сообщению
Всем доброго времечка,

Известно что для отладки очень удобно испольовать __LINE__ и __FILE__
Сразу понятно где что "обрушилось" и куда "копать".
Обычно это вставляют во что то подобное функции message_die
И пишется код что то вроде

PHP:
скопировать код в буфер обмена
  1.  
  2. if (!some_function())
  3.    message_die( .... ,__LINE__,__FILE__);
  4.  

Однако, это не всегда и не совсем удобно.
Вот я делаю некую функцию, которая вызывется у меня где попало.
если я в теле этой функции cсылаюсь на __LINE__, то получу номер сроки именно в файле где расположено тело этой функции, а откуда она вызывалась не известно.
Более того, ситуация усугубляется если это был "глубокий" вызов в несколько шагов.

Собственно вопрос состоит в том, что можно ли получить стек вызовов с указанирем имени файла и номера строки для каждого.

С Уважением
Евгений
2. Stierus - 30 Сентября, 2009 - 14:34:23 - перейти к сообщению
Xdebug попробуй поставить, думаю, то, что тебе нужно
3. eai - 30 Сентября, 2009 - 14:59:13 - перейти к сообщению
Stierus пишет:
Xdebug попробуй поставить, думаю, то, что тебе нужно

Эт вариант коенчно. но я хочу писать код который сам себя контролирует, дабы он в любоймомент на любом хостинге работал именно так.
4. EuGen - 30 Сентября, 2009 - 15:12:08 - перейти к сообщению
5. eai - 30 Сентября, 2009 - 16:27:02 - перейти к сообщению
EuGen пишет:
http://us3.php.net/manual/en/language.exceptions.php


смотрел я это, убиться можно, это вам не c++ Подмигивание
6. EuGen - 30 Сентября, 2009 - 21:58:56 - перейти к сообщению
Конечно. Хоть схожесть и есть, во многом есть сильные отличия.
7. JustUserR - 01 Октября, 2009 - 00:10:40 - перейти к сообщению
Вообще к слову сказать PHP очень интересный язык - одни особенности сделаны под язык C++ а часть других в полную противоположность (Особенно это касается наследования классов и некоторыми особенносяти работы с классами - для мени они кажутся противоестетвенными)
А вот обработка исключений все равно напоминает язык Java Улыбка
8. eai - 01 Октября, 2009 - 09:10:35 - перейти к сообщению
PHP для Web считаю лучшим средством.
Конечно, Java с ее бинами и сервером приложений с точки зрения построения архитектур это супер и правильно, но скорость и качество разработки , а главное простота (как разработки так и установки) на PHP меня подкупает. Поэтому для Web я выбираю LAMP!

И __LINE__ c __FILE__ классные особенности которые можно было бы использовать
Вот если бы можно было получить не просто __LINE__ c __FILE__ а массив таких значений.
Наверное я сильно губу просто раскатал Улыбка
9. Stierus - 01 Октября, 2009 - 11:41:44 - перейти к сообщению
Сделай хранилище этих данных (__LINE__ c __FILE__) , это может быть хоть глобальный массив, хоть класс под это дело напиши. При каждом действии, которое нужно отследить в каждой функции каждого класса, помещай инфу в это хранилище - вот тебе и будет стек на чистом php Улыбка

 

Powered by ExBB FM 1.0 RC1