Я использовал метод jQuery {cache: false}, и он работал как шарм.
Полный пример кода выглядит так:
$.ajaxSetup({cache: false});
Попробуйте Eclipse PDT для установки среды Eclipse, которая имеет функции отладки как Вы упомянутый. Способность ступить в код является намного лучшим способом отладить тогда старый метод var_dump и печать в различных точках для наблюдения, где поток идет не так, как надо. Когда все остальное перестало работать, хотя и все, что я имею, является SSH и энергией I все еще var_dump()
/ die()
для нахождения, куда код идет на юг.
Интегрированные отладчики, где можно наблюдать значения переменного изменения, когда Вы ступаете через код, действительно прохладны. Они действительно, однако, требуют установки программного обеспечения на сервере и определенном количестве конфигурации на клиенте. Оба из которых требуют, чтобы периодическое обслуживание сохранило в хорошем рабочем состоянии.
А print_r легок записать и, как гарантируют, будет работать в любой установке.
В зависимости от проблемы мне нравится комбинация error_reporting (E_ALL) смешанный с тестами эха (чтобы найти, что оскорбление выравнивает/регистрирует ошибку, произошедшую в initally; Вы ЗНАЕТЕ, что это не всегда, строка/файл php говорит Вам правильный?), фигурная скобка IDE, соответствующая (для разрешения "Ошибку анализа: синтаксическая ошибка, неожиданный $end" проблемы), и print_r (); выход; дампы (настоящие программисты просматривают источник; p).
Вы также не можете биться, phpdebug (проверьте SourceForge) с "memory_get_usage ()"; и "memory_get_peak_usage ()"; найти проблемные области.
+1 для print_r (). Используйте его для разгрузки содержания объекта или переменной. Для создания его более читаемым сделайте это с пред тег, таким образом, Вы не должны просматривать источник.
echo '<pre>';
print_r($arrayOrObject);
Также var_dump ($thing) - это очень полезно для наблюдения типа подвещей
я использую студию зенда для затмения с созданным в отладчике. Все еще замедляют по сравнению с отладкой с затмением PDT с xdebug. Надо надеяться, они устранят те проблемы, скорость улучшилась по недавним выпускам, но все еще переступание через вещи занимает 2-3 секунды. Панель инструментов Firefox зенда действительно делает вещи легкими (отладьте следующую страницу, текущую страницу, и т.д.). Также это предоставляет профилировщику, который сравнит Вашего кода и предоставит круговые диаграммы, время выполнения, и т.д.
В продуктивной среде я регистрирую соответствующие данные к журналу ошибок сервера с error_log ().
IDE Комодо работает хорошо с xdebug, даже для отладки remore. Этому нужно минимальное количество конфигурации. Все, в чем Вы нуждаетесь, является версией php, который Комодо может использовать локально для продвижения через код точки останова. Если Вам импортировали сценарий в проект Комодо, то можно установить точки останова щелчком мышью, как Вы установили бы его в затмении для отладки программы Java. Удаленная отладка, очевидно, более хитра, чтобы заставить его работать правильно (Вам, возможно, придется отобразить удаленный URL со сценарием PHP в Вашей рабочей области), чем локальная установка отладки, которую довольно легко настроить, если Вы находитесь на MAC или рабочем столе Linux.
print_r (debug_backtrace ());
или что-то как этот:-)
Ну, до некоторой степени это зависит от того, куда дела идут на юг. Это - первая вещь, которую я пытаюсь изолировать, и затем я буду использовать echo/print_r () по мере необходимости.
нбар: Вы парни знают, что можно передать верный как второй аргумент print_r () и он возвратит вывод вместо того, чтобы печатать его? Например:
echo "<pre>".print_r($var, true)."</pre>";
Ручная отладка обычно более быстра для меня - var_dump()
, и debug_print_backtrace()
все инструменты, которыми необходимо вооружить логику.
PhpEdit имеет созданный в отладчике, но я обычно заканчиваю тем, что использовал эхо (); и print_r (); старомодный путь!!
Можно использовать Firephp дополнение для поджигателя для отладки php в той же среде как JavaScript.
я также использую Xdebug, упомянутый ранее для профилирования php.
Xdebug и плагин DBGp для Блокнота ++ для усиленного поиска ошибки, FirePHP для легкого материала. Быстрый и грязный? Ничто не бьется dBug.
XDebug важен для разработки. Я устанавливаю его перед любым другим расширением. Это дает Вам отслеживания стека на любой ошибке, и можно позволить представить легко.
Для беглого взгляда на использование структуры данных var_dump()
. Не использовать print_r()
потому что необходимо будет окружить его <pre>
и это только печатает один var за один раз.
<?php var_dump(__FILE__, __LINE__, $_REQUEST); ?>
Для реальной среды отладки лучшим, который я нашел, является Комодо IDE, но это стоит $$.
1) я использую print_r (). В TextMate у меня есть отрывок для, 'пред' который расширяется до этого:
echo "<pre>";
print_r();
echo "</pre>";
2) я использую Xdebug, но не был в состоянии заставить GUI работать правильно на моем Mac. Это, по крайней мере, распечатывает читаемую версию отслеживания стека.
Для действительно песчаных проблем, которые были бы слишком трудоемкими для использования print_r/echo, чтобы выяснить, что я использую функцию отладки своего IDE (PhpEd). В отличие от других IDE я использовал, PhpEd не требует в значительной степени никакой установки. единственная причина я не использую его ни для каких проблем, с которыми я встречаюсь, состоит в том, что это мучительно медленно. Я не уверен, что замедление характерно для PhpEd или любого php отладчика. PhpEd не свободен, но я полагаю, что он использует один из отладчиков с открытым исходным кодом (как XDebug, ранее упомянутый) так или иначе. Преимущество с PhpEd, снова, то, что он не требует никакой установки, которую я нашел действительно довольно утомительными в прошлом.
Во всей честности, комбинации печати и print_r () для распечатывания переменных. Я знаю, что многие предпочитают использовать другое больше передовых методов, но я нахожу это самым легким для использования.
я скажу, что не осознавал это, пока я не сделал некоторое программирование Микропроцессора в Uni и не смог использовать даже это.
Я использовал Studio Зенда (5.5) , вместе с Платформа Зенда . Это дает надлежащую отладку, устанавливает контрольные точки/переступает код и т.д., хотя по цене.
Xdebug, Derick Rethans, очень хорош. Я использовал его некоторое время назад и нашел, что не было настолько легко установить. Как только Вы сделаны, Вы не поймете, как Вы управляли без него:-)
существует хорошая статья о Зона Разработчика Зенда (устанавливающий на Linux, не кажется немного легче), и даже плагин Firefox , который я никогда не использовал.
Я использую Netbeans с XDebug. Проверьте его в его веб-сайте для документов о том, как настроить его. http://php.netbeans.org/
Обычно я нахожу, создают пользовательскую функцию журнала, которая в состоянии экономить на файле, сохранить информацию об отладке, и в конечном счете переиздавать на общем нижнем колонтитуле.
можно также переопределить общий Класс исключений, так, чтобы этот тип отладки был полуавтоматическим.
Выходная буферизация очень полезна, если Вы не хотите портить свой вывод. Я делаю это в остроте, которую я могу комментировать/не комментировать по желанию
ob_start();var_dump(); user_error(ob_get_contents()); ob_get_clean();
PhpEd действительно хорош. Можно ступить в/по/из функции. Можно выполнить специальный код, осмотреть переменные, заменить переменные. Это удивительно.
Это моя небольшая среда отладки:
error_reporting(-1);
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_BAIL, 0);
assert_options(ASSERT_QUIET_EVAL, 0);
assert_options(ASSERT_CALLBACK, 'assert_callcack');
set_error_handler('error_handler');
set_exception_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function assert_callcack($file, $line, $message) {
throw new Customizable_Exception($message, null, $file, $line);
}
function error_handler($errno, $error, $file, $line, $vars) {
if ($errno === 0 || ($errno & error_reporting()) === 0) {
return;
}
throw new Customizable_Exception($error, $errno, $file, $line);
}
function exception_handler(Exception $e) {
// Do what ever!
echo '<pre>', print_r($e, true), '</pre>';
exit;
}
function shutdown_handler() {
try {
if (null !== $error = error_get_last()) {
throw new Customizable_Exception($error['message'], $error['type'], $error['file'], $error['line']);
}
} catch (Exception $e) {
exception_handler($e);
}
}
class Customizable_Exception extends Exception {
public function __construct($message = null, $code = null, $file = null, $line = null) {
if ($code === null) {
parent::__construct($message);
} else {
parent::__construct($message, $code);
}
if ($file !== null) {
$this->file = $file;
}
if ($line !== null) {
$this->line = $line;
}
}
}
Большинство ошибок можно легко найти, просто var_dump
ив некоторые ключевые переменные, но это, очевидно, зависит от того, какое приложение вы разрабатываете.
Для более сложных алгоритмов очень полезны (если не необходимы) функции step/breakpoint/watch
Я часто использую CakePHP, когда Rails невозможно. Для отладки ошибок я обычно нахожу error.log
в папке tmp и отслеживаю его в терминале с помощью команды ...
tail -f app/tmp/logs/error.log
Он дает вам диалоговое окно из пирога того, что происходит, то есть довольно удобно, если вы хотите вывести что-то в середине кода, который вы можете использовать.
$this->log('xxxx');
Это обычно может дать вам хорошее представление о том, что происходит / не так.
Я использую Netbeans с XDebug и надстройкой Easy XDebug FireFox
Надстройка необходима при отладке проектов MVC, потому что XDebug в Netbeans обычно работает чтобы зарегистрировать сеанс dbug по URL-адресу. Установив надстройку в FireFox, вы должны установить свойства проекта Netbeans -> Выполнить конфигурацию -> Дополнительно и выбрать «Не открывать веб-браузер». Теперь вы можете установить точки останова и начать сеанс отладки с помощью Ctrl-F5, как обычно. . Откройте FireFox и щелкните правой кнопкой мыши значок надстройки в правом нижнем углу, чтобы начать мониторинг точек останова. Когда код достигнет точки останова, он остановится, и вы сможете проверить состояния переменных и стек вызовов.