Отладка PHP – где установить точки останова?Как пройти аутентификацию?[закрыто]

StackOverflow https://stackoverflow.com/questions/343764

Вопрос

Итак, я совсем недавно сделал шаг от специальной отладки с помощью dump, print_r и echo к некоторым более сложным методам, и у меня возникают проблемы.

Я работаю с Zend Framework, Aptana и Zend Debugger.

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

Вопросы:

  1. Как я могу сделать так, чтобы мое приложение прервалось в момент аутентификации, вошло в браузер, перешло к определенному URI и затем продолжило отладку?
  2. Каковы хорошие места для установки точек останова в Zend Framework с MVC?
Это было полезно?

Решение

Вы хотите изменить данные аутентификации текущего пользователя в середине запроса?

Я не думаю, что это возможно. Zend Debugger в значительной степени доступен только для чтения. Даже если бы это было так, вы предполагаете, что любой используемый вами фреймворк может справиться с этим. Это означает, что ему придется постоянно пытаться синхронизировать свое внутреннее состояние с изменяющимися входными данными.

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

Zend Debugger имеет панель инструментов браузера ( http: // files.zend.com/help/Zend-Studio-Eclipse-Help/zend_debugger_toolbar.htm ), позволяющий запустить отладчик для текущей страницы; отладчик будет иметь всю информацию, которую браузер отправил бы: куки, публиковать данные и т. д. Есть даже " отладка следующей страницы " настройка, которая помогает вам отлаживать POST-формы. Похоже, это то, что вы хотите.

Другие советы

Не проще ли было бы установить константу, например:

define('MODE_DEBUG', 1);

Затем проверьте процесс аутентификации:

if($obj->myLoginMethod() || constant('MODE_DEBUG') == 1){

}

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

Что вы могли бы поставить галочку перед определением:

define('MODE_DEBUG', (false !== strpos($_SERVER['HTTP_HOST'], 'dev.mysite.com') ? 1 : 0));

Может быть, вам просто нужно переосмыслить решение для дампа (мне нравится идея использования точек останова, но я вернулся к себе после икоты, как ваш опытный, и я использую Zend Studio). Для отладки своих приложений я использую Zend_Log и автор firebug для Zend_Log. Firebug выводит журнал в firebug (NB, у вас должен быть < также установлено расширение href = "http://www.firephp.org/" rel = "nofollow noreferrer"> firephp для firefox). Храните регистратор в своем реестре, и вы можете выполнить большую часть отладки, не путая ваши представления с отвратительными дампами.

Хорошо, я поиграл с Zend Debugger еще немного. (ваш вопрос всколыхнул старых демонов) и я наконец понял, что такое "!" способ отладки. Чтобы ответить на ваш первоначальный вопрос по отладке после входа в систему, я бы сказал, что установите панель инструментов Zend для Firefox или IE. Справа от пункта меню «Отладка» есть выпадающий список с некоторыми опциями. Один из вариантов - & Quot; следующая страница & Quot ;. Чтобы перейти на экран входа в систему, выберите & Quot; Следующая страница & Quot; а затем введите свои учетные данные и отправьте, а следующая страница - это то, что отлажено.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top