NetBeans-Xdebug работает, но не будет предоставлять некоторые переменные PHP

обновление -- работа над получением WAMP с phpDeveloper/Xdebug идет. Я все еще хочу NetBeans - я просто хочу сравнить, посмотреть, получу ли я некоторые идеи.


я использую NetBeans 6.9 С лампы и отладчик xdebug для работы над PHP-кодом. Отображение переменных работает хорошо, но в последнее время оно работает менее хорошо. Например, ниже $authorized должно быть видно на панели переменные под кодом и должно предоставить его значение. Но это не показать, ни его значение, и mousing над кодом не помогает. (The $this объект показывает, и это продолжается и продолжается, но $authorized там нет, и это не имело бы смысла, если бы это было так.)

такое поведение является последовательным. Может быть, это функция сложности кода? Или безудержное использование объектов? кажется, это началось, когда я занялся CodeIgniter.

конечно, переменные скрыты, когда они мне нужны больше всего ... или так кажется бедному человеку. Что я не хватает?

отладчик NetBeans http://themanthursday.com/wiki/Debugger_Display.png

ниже приведен лучший пример. Когда я прохожу через этот код, переменные отображаются только суперглобальные переменные и это, как на картинке. Я не вижу никаких значений, даже простых строк.

(ноющая мысль: держу пари, что Суперобъект $CI имеет какое-то отношение ко всему этому ...)

class Product_documents {
  function getProductImage_all($id)
//Return an array of all documents for this product
{
  $imgPath = $this->_getProductImage_folder($id);
  $arrayPossibleFilenames = $this->_getProductImage_possible_files($id);
  foreach ($arrayPossibleFilenames as $imgFile) {
    $imgPathFull = $imgPath.$imgFile;

    $file_exists = get_file_info($imgPathFull);
    if ($file_exists) 
    {
    $arrayFilesPresent[] = $imgPathFull;
    }
  }
  return $arrayFilesPresent;        
}
}

6 ответов


Правой Кнопкой Мыши на панели переменной. Выберите "Фильтры". Ты найдешь секрет.


наткнулся на этот сайт, который имеет очень хорошую ссылку на страницу Xdebug, которая проходит через процесс обновления Xdebug путем компиляции "более последней" версии:

http://icephoenix.us/php/xdebug-doesnt-show-local-variables-in-komodo-netbeans-or-eclipse-pdt/

переменные внутри объектов / классов снова появляются! Да!

нет часов, нет "это может сделать xdebug freak out" сообщения-просто хорошие переменные, которые теперь полностью разоблачить провал моего решения... (хаха).

Дэвид


Я видел такие вещи раньше в Netbeans. Я ожидаю, что это просто ошибка, связанная с взаимодействием Netbean с XDebug. Одним из возможных обходных путей, которые я видел раньше, является добавление "часов" для переменной, которую вы не видите. Например, вы можете перейти на вкладку "часы" и ввести $authorized. Он должен появиться, как только будет установлен.


Я думаю, что это сводится к одноэлементному шаблону, который реализован в CodeIgniter как "супер объект". Я никогда не перезапускал этот проект, чтобы проверить идею Камаля. Вскоре после того, как он опубликовал сообщение, Я пришел к выводу, что причиной был синглтон (я не пытался угадать, есть ли у Камаля решение или нет). Таков мой ответ на этот пост.


(2015) в php.ini под [xdebug], установите xdebug.show_local_vars=1 Если вы хотите всех локальных переменных в режиме отладки.


попробуйте инициализировать $authorized в bool false.

Я видел, что Netbeans не показывает мне переменные, инициализированные возвращаемым значением из функции без doctype, но он попал или пропустил достаточно, чтобы не сделать шаблон из.