Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как вы отлаживаете PHP скриптов?
Как вы отлаживаете PHP скрипты?
Я знаю об основной отладке, такой как использование отчетов об ошибках. Отладка точки останова в PHPEclipse также весьма полезна.
Каков наилучший (с точки зрения быстрого и легкого) способ отладки в phpStorm или любом другом IDE?
Попробуйте Eclipse PDT для настройки среды Eclipse, которая имеет функции отладки, как вы упомянули. Возможность шагнуть в код-это гораздо лучший способ отладки, чем старый метод var_dump, и печатать в разных точках, чтобы увидеть, где ваш поток идет не так. Когда все остальное терпит неудачу, хотя и все, что у меня есть, это SSH и vim, я все еще var_dump() / die() , чтобы найти, где код идет на юг.
Это моя маленькая отладочная среда:
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;
}
}
}
XDebug имеет важное значение для развития. Я устанавливаю его перед любым другим расширением. Он дает вам трассировку стека при любой ошибке, и вы можете легко включить профилирование.
Для быстрого просмотра структуры данных используйте var_dump() . Не используйте print_r() , потому что вам придется окружить его <pre> , и он печатает только один var за один раз.
<?php var_dump(__FILE__, __LINE__, $_REQUEST); ?>
Для реальной среды отладки лучшее, что я нашел, - это Komodo IDE , но это стоит $$.
Я использовал Zend Studio (5.5) вместе с платформой Zend . Это дает правильную отладку, точки останова/перешагивание через код и т. д. хотя и за определенную цену.
Честно говоря, комбинация print и print_r() для распечатки переменных. Я знаю, что многие предпочитают использовать другие, более продвинутые методы, но я нахожу это самым простым в использовании.
Я скажу, что я не полностью оценил это, пока не сделал некоторое микропроцессорное программирование в Uni и не смог использовать даже это.
Xdebug, по словам Дерика Ретанса, очень хорош. Я использовал его некоторое время назад и обнаружил, что его не так просто установить. Как только вы закончите, вы не поймете, как вам удалось обойтись без него :-)
Есть хорошая статья о Zend Developer Zone (установка на Linux не кажется проще) и даже плагин Firefox , который я никогда не использовал.
Я использую Netbeans с XDebug и легким дополнением XDebug FireFox
Надстройка необходима при отладке проектов MVC, поскольку обычный способ запуска XDebug в Netbeans-это регистрация сеанса dbug через url. С надстройкой, установленной в FireFox, вы бы установили свои свойства проекта Netbeans - > Run Configuratuion -> Advanced и выбрали "Do Not Open Web Browser" теперь вы можете установить точки останова и начать сеанс отладки с помощью Ctrl-F5, как обычно. Откройте FireFox и щелкните правой кнопкой мыши значок надстройки в правом нижнем углу, чтобы начать мониторинг точек останова. Когда код достигает точки останова, он останавливается, и вы можете проверить свои переменные состояния и стек вызовов.
Я использую Netbeans с XDebug. Проверьте его на своем веб-сайте для получения документов о том, как его настроить. http://php.netbeans.org/
Для действительно серьезных проблем, которые были бы слишком трудоемкими, чтобы использовать print_r/echo, чтобы выяснить, я использую функцию отладки моего IDE (PhpEd). В отличие от других IDEs, которые я использовал, PhpEd практически не требует настройки. единственная причина, по которой я не использую его для любых проблем, с которыми сталкиваюсь, - это то, что он мучительно медленный. Я не уверен, что медлительность специфична для PhpEd или любого отладчика php. PhpEd не является бесплатным, но я считаю, что он использует один из отладчиков с открытым исходным кодом (например, XDebug ранее упоминалось). Преимущество с PhpEd, опять же, заключается в том, что он не требует установки, которую я нашел действительно довольно утомительной в прошлом.
Я часто использую CakePHP, когда Rails невозможно. Для отладки ошибок я обычно нахожу error.log в папке tmp и завершаю его в terminal с помощью команды...
tail -f app/tmp/logs/error.log
Это дает вам запуск диалогового окна из торта того, что происходит, что довольно удобно, если вы хотите вывести что-то в него mid-код, который вы можете использовать.
$this->log('xxxx');
Это обычно может дать вам хорошее представление о том, что происходит on/wrong.
Ну, в какой-то степени это зависит от того, куда идут дела на юге. Это первое, что я пытаюсь изолировать, а затем использую echo/print_r() по мере необходимости.
NB: вы, ребята, знаете, что вы можете передать true в качестве второго аргумента в print_r(), и он вернет вывод вместо того, чтобы печатать его? E.g.:
echo "<pre>".print_r($var, true)."</pre>";
Komodo IDE хорошо работает с xdebug, даже для отладки remore. Для этого нужно минимальное количество конфигурации. Все, что вам нужно, - это версия php, которую Komodo может использовать локально для пошагового выполнения кода в точке останова. Если у вас есть скрипт, импортированный в проект komodo, то вы можете установить точки останова с помощью щелчка мыши точно так же, как вы бы установили его внутри eclipse для отладки программы java. Удаленная отладка, очевидно, более сложна, чтобы заставить ее работать правильно ( возможно, вам придется сопоставить удаленный url со сценарием php в вашем рабочем пространстве), чем локальная настройка отладки, которую довольно легко настроить, если вы находитесь на рабочем столе MAC или linux.
Существует множество методов отладки PHP, которые могут сэкономить вам бесчисленное количество часов при написании кода. Эффективным, но основным методом отладки является простое включение отчетов об ошибках. Другой немного более продвинутый метод включает использование операторов печати, которые могут помочь точно определить более неуловимые ошибки, отображая то, что на самом деле происходит на экране. PHPeclipse-это плагин Eclipse, который может выделять общие синтаксические ошибки и может использоваться совместно с отладчиком для установки точек останова.
display_errors = Off
error_reporting = E_ALL
display_errors = On
а также используется
error_log();
console_log();
я использую zend studio for eclipse со встроенным отладчиком. Его все еще медленно по сравнению с отладкой с eclipse pdt С xdebug. Надеюсь, они исправят эти проблемы, скорость улучшилась по сравнению с последними релизами, но все еще переступать через вещи занимает 2-3 секунд. Панель инструментов zend firefox действительно упрощает работу (отладка следующей страницы, текущей страницы и т. д.). Кроме того, он предоставляет профилировщик, который будет тестировать ваш код и предоставлять круговые диаграммы, время выполнения и т. д.