Перейти к содержимому

Фото
- - - - -

PHP include caller


  • Вы не можете создать новую тему
  • Please log in to reply
6 ответов в этой теме

#1 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 26 января 2008 - 22:32

такой вопрос: есть файл Б, который инклюдится файлом А. Могу ли я из файла Б получить информацию о файле А без написания доп. логики в файле А? Другими словами, есть ли доступ к caller?
  • 0

#2 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 26 января 2008 - 22:51

блин, сам спросил - сам ответил :)
debug_backtrace.
тогда следущий вопрос, с производительностью этой функции как?
  • 0

#3 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 27 января 2008 - 01:17

debug_backtrace
тогда следущий вопрос, с производительностью этой функции как?

Зачем тебе это? Не представляю, что ты хочешь такое реализовать, если тебя заботит её производительность... А замерить производительность очень просто при помощи microtime( true ).
  • 0

#4 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 27 января 2008 - 14:15

Зачем тебе это? Не представляю, что ты хочешь такое реализовать, если тебя заботит её производительность... А замерить производительность очень просто при помощи microtime( true ).

Скажем так, есть вебмастеры, которые создают разные пхп файлы и инклюдят общий файл-сборщик статистики. файл-сборщик смотрит, кто его вызвал и записывает в базу название файла-коллера и кое-что прочее.
Кстати, есть один проект, надо которым я сейчас работаю и мне дико не хватает времени, есть предложение желающим за 5к поработать следущую неделю, используемый фреймворк - кэйк, сделано уже процентов 70.
  • 0

#5 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 27 января 2008 - 17:20

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

Но ты ведь читал в хелпе, что debug_backtrace отслеживает лишь вызовы функций? Т.е. тебе это подходит? Имя файла-контроллера можно взять из $_SERVER, а на счёт кое-чего прочего хз :)
  • 0

#6 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 27 января 2008 - 17:28

Но ты ведь читал в хелпе, что debug_backtrace отслеживает лишь вызовы функций? Т.е. тебе это подходит? Имя файла-контроллера можно взять из $_SERVER, а на счёт кое-чего прочего хз :)

ты неправ, он отслеживает вызовы функции, файл откуда была вызвана функция и номер строки, где эта функция находится ну и до кучи тип вызываемой функции и аргументы.
см http://ee2.php.net/debug_backtrace.

Но можно из из $_SERVER, это очень здравая мысль!

Это, а поработать не хочешь недельку? :)

Сообщение изменено: zedirtybastard (27 января 2008 - 17:29 )

  • 0

#7 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 27 января 2008 - 18:33

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

Ну это само собой разумеется. Просто ты меня неправильно понял, я имел ввиду, что он отслеживает только вызовы функций. Например, инклуды через __autoload() не будут видны, но это уже из другой оперы ;)

Поработать - вряд ли, надо свою работу срочно закончить, напряжная неделька будет, да и с Cake я плохо знаком ;) После своей буду брать ТЗ в Webmedia, так что всё расписано конкретно)
  • 0