NetBeans-Xdebug работает, но не предоставляет некоторые переменные PHP - PullRequest
9 голосов
/ 13 августа 2010

ОБНОВЛЕНИЕ - работа над получением WAMP с продолжением phpDeveloper/Xdebug.Я все еще хочу NetBeans - я просто хочу сравнить, посмотрим, получу ли я какие-то сведения.


Я использую NetBeans 6,9 с LAMP и Xdebug для работы над кодом PHP.Дисплей переменных работает хорошо, но в последнее время работает хуже.Например, ниже, $authorized должно быть видно на панели переменных под кодом и должно отображать его значение.Но это не показывает, ни его значение, и наведение кода не помогает.(Объект $this показывает и продолжает работать, но $authorized там нет, и это не имело бы смысла.)

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

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

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

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

(Надежная мысль: держу пари, что суперобъект $ 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 ]

9 голосов
/ 08 июня 2011

Щелкните правой кнопкой мыши на панели переменных.Выберите «Фильтры».Вы найдете секрет.

6 голосов
/ 18 сентября 2010

Наткнулся на этот сайт, на котором есть очень хорошая ссылка на страницу Xdebug, в которой описывается процесс обновления Xdebug путем компиляции «более новой» версии:

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

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

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

David

2 голосов
/ 18 августа 2010

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

0 голосов
/ 16 сентября 2015

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

0 голосов
/ 24 мая 2012

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

0 голосов
/ 13 августа 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...