отладка РНР, как узнать какие переменные небыли использованы

jeno

Новичок
отладка РНР, как узнать какие переменные небыли использованы

добрый день

есть ли какие-то средства отладки, чтоб узнать например какие переменные были инициализированны но небыли использованы в моем РНР скрипте? (как например в разных компиляторах когда компилируешь программу, он выдает предупреждения "переменная sdfksj инициализированна но небыла использована")
 

mity

Новичок
php по сути что-то среднее между компилятором и интепритатором
Поэтому, в общем случае, об использовании переменных можно судить только после завершения выполнения скрипта.
То есть запустили скрипт с одними параметрами переменные используются все, запустили с другими параметрами, ну или include файл отсутствует и часть переменных уже не используется.
 

jeno

Новичок
ну это ясно...скрипт может быть запущен каждый раз с разными условиями....
но все же, по завершения скрипта, можно увидеть что не использовалось но было инициализировано? (не средсвами самого PHP конечно же, а возможно каким-то дебагером...или возможно сам интерпритатор может давать такую информацию?)
 

mity

Новичок
Явного способа узнать были ли использованы все инициализированые переменные я не знаю.
Есть хорошая книжка
"Профессиональное программирование на php Шлосснейгл Джордж"
Там в том числе рассматривается внутреннее устройство php
Можно покапать в сторону профилёров стр 432., возможно они могут создавать полные логи выполнения скрипта. Затем имея список всех переменных можно проверить присутствуют ли они в логе.
 

newARTix

Новичок
а как насчет $$var? Я сам стараюсь избегать таких переменных, но все же они бывают...
 

Wicked

Новичок
по-моему, это умеют делать всякие ассистенты, типа как в zend studio
 

weregod

unserializer
для анализа кода применимы тулзы PHP Depend, PHP Mess Detector (PHPMD)

небольшой обзор: http://habrahabr.ru/blogs/php/91777/
 

fixxxer

К.О.
Партнер клуба
error_reporting = E_ALL
log_errors = On

прогнать wget -r / телепортом, сгруппировать логи, ?? PROFIT!

(да, я в курсе, что так вылезет не все. но бОльшая часть - наверняка).
 

Wicked

Новичок
fixxxer
тогда уж не error_reporting и log_errors, а xdebug_get_code_coverage() какой-нибудь
 
Сверху