А почему не PHPStorm и OpenServer, как я советовал?
Если принимаете решение использовать другие инструменты, значит вы должны понимать, ради чего это делаете. И беретесь самостоятельно разбираться как это делать по-другому. Мне лень, да и незачем копаться в том, с чем я не работаю. Это бы заняло очень много времени и не принесло пользы. Так что, придется вам погуглить самому =)
В каталоге установки XAMPP ищешь файл php\php.ini и правишь его в соответствии с уроком. Перезапусаешь apache.В NetBeans не знаю, но думаю тоже не сложно, пользую Шторм.
По теме урока всё установилось и работает нормально. За исключением F8 и F9.
F9 вызывает меню Пуск,
F8 вызывает меню для подключения к проектору.
F7 работает адекватно.
Управлять можно без клавиш, иконками в PHPStotm.
Пока не разобрался как устранить проблему. В Windous 7 + SP1 (в моём случае) эти клавиши выдают аналогичный описанному результат.
С помощью отладчика наконец разобрался с рекурсивной функцией(РФ).
1.При самовызове РФ N раз, создаётся стек с N уровнями.
2.Возвращение РФ (в место первого вызова)происходит за N шагов по стеку в обратном порядке.
3."Сколько шагов вперёд, столько шагов назад"
Для иллюстрации:
<?php
function natural(int $n)
{
if ($n == 0) {
echo '<br>';
return;
}
$n--;
echo '<br> создание уровня стека ' . $n;
natural($n);
echo '<br>' . 'возврат из уровня стека ', $n, ' на предыдущий';
}
$n = 3;
natural($n);
На экране:
создание уровня стека 2
создание уровня стека 1
создание уровня стека 0
возврат из уровня стека 0 на предыдущий
возврат из уровня стека 1 на предыдущий
возврат из уровня стека 2 на предыдущий
Сделал все как в видео уроке но после того как обновляю страничку в браузере с включенным дебагером ничего в пхп шторме не происходит, дебагер ничего не пишет
Здравствуйте. Сделал все по инструкции, но XDebug не работает.
Во вкладке "Frames" пишет: "Frames are not aviable",
В "Variables": "Waiting for incoming connection with ide key 'PHPSTORM'".
Ничего дальше не происходит. Не могу решить. Помогите пожалуйста. Заранее спасибо.
З.Ы. Вместо Open Server использую WampServer, но я так понял, что отличаются они друг от друга мало.
Отличаются, скорее всего там вообще нет XDebug. Прошу меня понять и простить, но у меня нет времени разбираться со всеми серверами на свете, если хотите чтобы работало - сделайте как в уроке, пожалуйста :)
по ходу я совсем тупая ) все настроила, все работает, но происходящий процесс ничего не прояснил. я вижу, что переменная меняется, становясь меньше на 1. но сложить это хоть в какой-то понятный пошаговый процесс в своей голове я не могу. т.е. я не могу представить как работает код, что там происходит на его задворках. и возникает вопрос, стоит ли мне продолжать или я безнадежна?
Паниковать не стоит, рекурсия не всем даётся с первого раза. Можете пока вообще её пропустить - это не помешает дальнейшему прохождению курса. Но я бы советовал Вам с ней всё же разобраться - погуглите другие уроки на тему рекурсии, возможно найдёте какое-нибудь более наглядное пособие. Но, опять же, повторюсь - не обязательно. Не поймёте - чёрт с ней, проходите дальше ;)
Есть проблема по запуску XDebug. Настроил все верно (перепроверял). но при перезагрузке странице в браузере она не подвисает в загрузке, а просто выдает конечный результат как и до установки брейкпойнта. в PHPStorm вижу следующее:
У меня linux ubuntu и сервер xampp(lampp) и PhpStorm.
Может у кого такая-же конфигурация будет полезна
инструкция по установке xdebug на PhpStorm + ubuntu + lampp.
Инструкция:
1. Перейти:
https://xdebug.org/wizard.php
2. В свой index.php на локальном домене вставить:
phpinfo();
(Не чего кроме phpinfo(); в файле не должно быть прописано!)
3. ctrl+u копируем код страницы.
И вставляем в окошко на странице https://xdebug.org/wizard.php
и нажимаем кнопку снизу.
4. Инструкция которую выдала страница: https://xdebug.org/wizard.php
(просто вставка кода который подсвечен, он может быть уникален у вас в некоторых местах)
5. Кроме последней строчки в инструкции
(примерно такого вида zend_extension = /opt/lampp/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so)
нужно еще добавить за ней же:
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.remote_connect_back = 1
xdebug.idekey = "PHPSTORM"
6. Как настроить PhpStrom и Chrome здесь: https://php.zone/php-training-course/11
7. Перезапустить lampp.
Спасибо огромное какой материал качественный!
Кажется теперь я ее понял:
Сначала идет проработка вызова функции в самой себе.
А только потом проработка всех выводов echo $arg, все равно какая-то пелена, что за правила отработки echo и функции внутри функции? Почему echo потом отрабатывает в обратном порядке ведь числа поступали в порядке 3 2 1 0, а он их после отработки выводит 0 1 2 3, интересно.
Когда проходил данный урок упёрся, как и некоторые комментаторы, в ошибку(или не ошибку) "Waiting for incoming connection with ide key 'PHPSTORM'.", махнул рукой и пошёл дальше.
Уже сижу делаю "большую Домашку" в конце уровня "Пишем Блог" и начал плавать в объёме кода, ну, думаю, тут то Дебагер мне поможет, вернулся, проломал голову, но не тут то было. Неумолимое ВэйтинФо. Исходя из комментов пришёл к выводу, что это проблема на стороне браузера, опробовал кроме Хрома Фаерфокс, установив в него аналогичное расширение же. А воз и ныне там(
Ну это понятно, но не понятно почему соединения не происходит. Все пункты урока выполнены: PHPStorm, как мы видим, настроен, Дебаг для браузера установлен, Айдикей настроен, сэйв нажато, дэбаг в панели запущен, брэйкпоинты выставлены, страница обновлена всеми возможными способами, но просто грузится до конца, отклика в IDE никакого. Понятно, что с вероятностью 99% я где то что то упустил, не понятно - что именно)
Всем привет!
Столкнулся с проблемой The script 'W:\domains\localhost\phpzone - debug.php' is outside the project. Кто-нибудь знает как ее решить? Читал в интернете, говорят, что надо сделать путь не на файл, а на папку с файлом, но у меня ничего не получилось(
И так всё работает, но хотелось бы избавиться от этой надписи
Здравствуйте!
Сделал все как вы делали, но при нажатии на зеленую таракашку в PHPstorm'e пишет Error running 'Xdebug': Port 9000 is busy,с чем это связано?
Всем спасибо за участие, ответ был получен в чате.
Затем почитав еще несколько статеек про рекурсию и опробовав примеры понял эту фишку.
Рекурсия в PHP выполняя проход по циклу собирает результаты в стек, как стопка книг, заполняя его снизу вверх. А затем, когда граничное условие выполнено, начинает возвращать результат, но теперь уже берет значения с конца, т.е. с верхней части стопки книг (стека).
Получается, что заполнение идет 5, 4, 3, 2, 1, 0, а выборка идет в обратном порядке.
php 7.2, phpstorm 2019.2
во втором примере не входит по f7 в функцию getSum, приходится использовать Force Step Into (Alt + Shift + F7) странное поведение.
Если нет, то можно поискать в биосе эту настройку. Ну или просто в шторме зайти и переопределить хоткеи для этого действия, нажав на своей клавиатуре f7, и посмотреть какой хоткей в итоге подставится. Дебажить мышкой - не выход.
Сделал всё как описано в уроке, но возникла проблема. Не могу включить дебаг в PhpStorm, так как возникает вот такая ошибка: Error running 'index.php': Interpreter is not specified or invalid. Press ''Fix'' to edit your project configuration.
p.s. Спасибо за то, что вы делаете!
Прошу помощи, никак не пойму. В общем брэйкпоинт срабатывает, в браузере загрузка подвисает, но PHPStorm никак не хочет показывать что там в переменных на текущий момент.
В чем может быть проблема в Xdebug? У меня стоит SublimeText 3, вроде и страница долго грузит, и стрелочка появляется, но в окне отладки вообще пустота...
Видео пересмотрел у вас там такого не вышел как "Waiting for incoming connection with ide key 'PHPSTORM'".
Думаете что я в стороне гугла нечего не установил?! сделал как на видео.
Может мне стоит скачать программы по старой версии?
В данном моменте стоит openserver
Apache_2.4-php_7.0-7.1-x64
PHP_7.3-x64
Mysql-5.6
По рекурсии переменная получает 7 и делает столько же шагов назад.
На экране:
int(7) int(6) int(5) int(4) int(3) int(2) int(1) int(0) 0,1,2,3,4,5,6,7
var_dump добавил для наглядности просто, чтобы понять лучше что происходит:) Спасибо Артем!
Привет! Что то я себе мозг сломал уже на два дня!))
Когда проходил эти настройки просто посмотрел что что то отображается и пошел дальше по урокам. Теперь когда пришла пора применять на практике, дебаг мне показывает только глобальные массивы. Переменных не хочет показывать категорически. Я и на других версиях PHP пробовал.
Спасибо за ответ , но это я тупонул и не тот скрин прицепил. Вобщем проблему решил обновлением Phpstorm Сначала попробовал настроить дебаг в других редакторах, все получилось, потом обновил Phpstorm до версии 2019 года и все заработало.
Я всё делал правильно, но когда я нажимаю на значок жучка в хроме и перезагружаю страницу, ничего не происходит.
Вот такие вот у меня настройки в обоих php.ini
У меня стоит ubuntu 18.04 и конечно-же нет openServera, стоит обычный lamp, в остальном настройки такие-же, как и у автора. Я так понимаю: для того, чтобы начать дебагинг файла ndex.php который я создал в папке index, я должен открыть в хроме http://localhost/index/, потом нажать на значёк жучка и обновить страницу. но после этого ничего не происходит
Кстати я не понимаю, почему у автора адрес проекта - это http://myproject.loc/, ведь у него по-идеи до папки myproject.loc должен быть адрес сервера(localhost или 127.0.0.1)
Я также пытался обновлять страницу http://localhost/, но в любом случае ничего не происходит
Классный урок! Теперь многое понятно! Плюс почитал комментарии чтобы понять как и почему значения выводятся в обратном порядке, теперь всё супер)) Пробовал все задачи из прошлого дз, отладчик работает без проблем.
Запятая взятая с в апострофы - добавляет запятую между каждым числом при выводе.
Это как правило? Такое сочетание добавляет запятые между каждым символом или как это сформулировать, чтобы понять?
Здравствуйте. На данном этапе возникла проблема. У меня macOS, следовательно пользоваться OpenServer невозможно. Пользуюсь MAMP. Прежде чем писать, естественно, загуглил - XDebug встроен по умолчанию, но только в платную версию MAMP-PRO. Хотелось бы получить совет от автора, какой сервер, совместимый с macOS, вы бы порекомендовали, чтобы в дальнейшем, в рамках данного курса, не возникало проблем. Спасибо.
День добрый,
Я дошла до пункта: "Теперь возвращаемся в Chrome, заходим на адрес нашего проекта (в моём случае http://myproject.loc/) и после того как зашли(!!!) жмём на значок жучка (уже в Chrome) и выбираем пункт “Debug”."
После обновления страницы она не повисла в загрузке, а в PhpStorm в разделах написано frames: "frames are not availiable"; varibles: "Waiting for incoming connection with ide key 'PHPSTORM'".
Использую openserver и PhpStrom.
в отладчике в Variable надпись: "Waiting for incoming connection with ide key 'PHPSTORM'".
И ещё, F7, F8, F9 - у меня не работают, т.е. никаких действий не происходит
Артём, а можете рассказать про настройку отладки PHPSTORM+DOCKER(php-fpm+nginx), когда приложение запущено в DOCKER-контейнере?
Был бы Вам очень признателен!
Этот кейс сейчас очень востребован, и я думаю, неплохо было бы пролить свет на эту темную проблемку.
Сделал как в видео, то есть добавил строчки для xdebug в openserver и после настроил в phpstorm,но всплывающего окошка в правом верхнем углу экрана нет и пишет addconfiguration, что делать?
P.S проблема решена
1) Установил все как в уроке было, отладчик запускается и информацию показывает, НО.
Когда обновляешь страничку она в браузере не грузится, но информацию отладчику передает.
Если Отключить отладчик, тогда страница грузится.
2) В видео на времени 11.30
При перезапуске отладчика в поле дебага все убралось и отобразился только один уровень с итогом. Чтоб появилась вся информация, пришлось снова нажимать Ф8 или Ф9
И после этого все равно в Watches только в одном стеке есть значение Х
Сейчас посмотрел, после выполнения всех итераций кода страничка прогружается.
Правильно ли я понял касательно работы рекурсии в последнем задании прошлого ДЗ: получается, что тот код сначала считает все значения Х и после их выводит от обратного? Так всегда происходит?
Т.к. у меня сложности возникли именно с выводом значений в обратном порядке, для этого пришлось вводить вторую переменную.
Всё правильно, прежде чем она отобразится, скрипт должен отработать до конца. Пока отладчик стоит на брэйкпоинте, выполнение скрипта на паузе, страница продолжает формироваться.
Рекомендую погуглить про рекурсию, не понял пока вашего вопроса, кто там кого считает) Посмотрите альтернативные источники.
А у меня точка останова не срабатывает.
Ну и "Waiting for incoming connection with ide key 'PHPSTORM'" в Variables.
В phpinfo() инфа о xdebug есть - v2.9.8.
На ошибки в коде PhpStorm указывает.
Привет!
Обновлял у себя версию openserver'а. В версии Open Server 5.3.8 используется версия Xdebug 3.0.2, и для активации необходимо использовать другие параметры для php.ini так как со старыми уже не работает.
*Примечание: в Xdebug 3 по умолчанию прописан порт 9003, поэтому надо либо его сменить на 9000, либо в phpStorm поставить порт 9003.
Да, это я напимер написал. В документации написано что из-за изменения порта по умолчанию, слушаются и 9000 и 9003. В общем не важно. Суть в новых параметрах для пхп.ини
Параметры:
С дебагером разобрался, всё настроено, всё работает, но вот видимо рекурсию понял не до конца. Точнее проблема как и у всех комментаторов, когда дошли до нуля как echo начинает отрабатывать и выводить 1, 2, 3 и т.д.
* **Configure phpStorm**
* Go through - Settings >> PHP >> Debug
* Ensure that 'Debug port' is the same as you have in your `xdebug.ini`. In our case it was `9003`.
* Save and close the Settings Dialog
* **Start debugging**
* Create some [breakpoints](https://www.jetbrains.com/help/phpstorm/breakpoints-2.html) in your project
* Make sure those breakpoints gets executed when your visit your website in browser.
* Start listener by clicking on the telephone :telephone_receiver: button on top toolbar
* If you can't find telephone button; then go through menus - Run -> Start listening for PHP Debug Connections
* Use [chrome extension](https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc?hl=en)
* Configure this chrome extension and set IDE Key to `PHPSTORM`
* Visit your website
* You should see a popup window in PhpStorm , click **Accept** connection
* Done, enjoy debugging !!!
-----
### Disable xdebug
У меня в проге после настройки пишет Waiting for incoming connection with ide key 'PHPSTORM'.
Как можно исправить?
UPD. Нашел в интернете решение.
Это разве нужно исправлять? Всё же вроде правильно.
О, а помогите мне тоже найти. Сам не справился.
Здравствуйте
У меня XAMPP и NetBeans. Как настроить Xdebug?
А почему не PHPStorm и OpenServer, как я советовал?
Если принимаете решение использовать другие инструменты, значит вы должны понимать, ради чего это делаете. И беретесь самостоятельно разбираться как это делать по-другому. Мне лень, да и незачем копаться в том, с чем я не работаю. Это бы заняло очень много времени и не принесло пользы. Так что, придется вам погуглить самому =)
В каталоге установки XAMPP ищешь файл php\php.ini и правишь его в соответствии с уроком. Перезапусаешь apache.В NetBeans не знаю, но думаю тоже не сложно, пользую Шторм.
У меня уже была установлена эта сборка. Буду гуглить дальше.
По теме урока всё установилось и работает нормально. За исключением F8 и F9.
F9 вызывает меню Пуск,
F8 вызывает меню для подключения к проектору.
F7 работает адекватно.
Управлять можно без клавиш, иконками в PHPStotm.
Пока не разобрался как устранить проблему. В Windous 7 + SP1 (в моём случае) эти клавиши выдают аналогичный описанному результат.
Значит у вас в BIOS выставлена настройка горячих клавиш. У вас есть на клавиатуре кнопка Fn? Как правило она слева внизу.
С помощью отладчика наконец разобрался с рекурсивной функцией(РФ).
1.При самовызове РФ N раз, создаётся стек с N уровнями.
2.Возвращение РФ (в место первого вызова)происходит за N шагов по стеку в обратном порядке.
3."Сколько шагов вперёд, столько шагов назад"
Для иллюстрации:
На экране:
создание уровня стека 2
создание уровня стека 1
создание уровня стека 0
возврат из уровня стека 0 на предыдущий
возврат из уровня стека 1 на предыдущий
возврат из уровня стека 2 на предыдущий
Мои поздравления =)
Рекурсивная функция мне напомнила сюжет фильма "Начало". Все как там...
:D не смотрел, кстати. Надо будет глянуть на выходных.
Согласен, мне тоже...
Установил chrome и расширение, но жучка на консоли браузера не вижу!
А, вижу, но он в яндексовском браузере...
Кек, то есть установили в хромовском сторе, а появился он в Яндекс.Браузере?
Кекаете?
А-то! :)
В чём дело?!
Да, и модификация PHPstorm уже другая...
Что такое модификация? Версия?
Да
В плане отладки там всё то же самое. Разве нет? Я вот только вчера себе поставил, и никаких изменений не заметил.
Согласен вполне
Ок. Кстати, на комментарии лучше отвечать, нажимая на "Ответить" под конкретным комментом.
Какая у Вас версия Сторма?
2017.3.2
Сделал все как в видео уроке но после того как обновляю страничку в браузере с включенным дебагером ничего в пхп шторме не происходит, дебагер ничего не пишет
Напиши в ВК, что-то всё равно не так :)
Здравствуйте. Сделал все по инструкции, но XDebug не работает.
Во вкладке "Frames" пишет: "Frames are not aviable",
В "Variables": "Waiting for incoming connection with ide key 'PHPSTORM'".
Ничего дальше не происходит. Не могу решить. Помогите пожалуйста. Заранее спасибо.
З.Ы. Вместо Open Server использую WampServer, но я так понял, что отличаются они друг от друга мало.
Отличаются, скорее всего там вообще нет XDebug. Прошу меня понять и простить, но у меня нет времени разбираться со всеми серверами на свете, если хотите чтобы работало - сделайте как в уроке, пожалуйста :)
Разобрался. Огромное спасибо за ваши курсы. Все максимально доходчиво объяснено :)
А почему после первого выполнения 7 строки кода, сразу не выполняется 8?
Потому что снова начинает выполняться функция numbers(), а на первой её строке стоит breakpoint, и отладчик на нём останавливается.
по ходу я совсем тупая ) все настроила, все работает, но происходящий процесс ничего не прояснил. я вижу, что переменная меняется, становясь меньше на 1. но сложить это хоть в какой-то понятный пошаговый процесс в своей голове я не могу. т.е. я не могу представить как работает код, что там происходит на его задворках. и возникает вопрос, стоит ли мне продолжать или я безнадежна?
Паниковать не стоит, рекурсия не всем даётся с первого раза. Можете пока вообще её пропустить - это не помешает дальнейшему прохождению курса. Но я бы советовал Вам с ней всё же разобраться - погуглите другие уроки на тему рекурсии, возможно найдёте какое-нибудь более наглядное пособие. Но, опять же, повторюсь - не обязательно. Не поймёте - чёрт с ней, проходите дальше ;)
У меня в консоли пишет следующее:
Waiting for incoming connection with ide key 'PHPSTORM'
Сделал так же как и написано.
Это хорошо, значит отладчик ждёт входящего соединения. Посмотрите видео ещё (в начале урока) - там вообще всё как есть показано.
Спасибо, всё работает)
Спасибо за уроки)
Отлично! Всегда рад помочь =)
Есть проблема по запуску XDebug. Настроил все верно (перепроверял). но при перезагрузке странице в браузере она не подвисает в загрузке, а просто выдает конечный результат как и до установки брейкпойнта. в PHPStorm вижу следующее:
Все норм, он ждет соединения. Настраивайте плагин в хроме и перезагружайте страницу. Все как на видео сделайте.
Да, уже заработало, спасибо
У меня linux ubuntu и сервер xampp(lampp) и PhpStorm.
Может у кого такая-же конфигурация будет полезна
инструкция по установке xdebug на PhpStorm + ubuntu + lampp.
Инструкция:
Спасибо огромное какой материал качественный!
Кажется теперь я ее понял:
Сначала идет проработка вызова функции в самой себе.
А только потом проработка всех выводов echo $arg, все равно какая-то пелена, что за правила отработки echo и функции внутри функции? Почему echo потом отрабатывает в обратном порядке ведь числа поступали в порядке 3 2 1 0, а он их после отработки выводит 0 1 2 3, интересно.
Ответил в комментах к прошлому уроку
Пасиб автору!
Классный и ёмкий урок для новичков.
На здоровье)
Спасибо, очень полезно!
Рад быть полезным)
Когда проходил данный урок упёрся, как и некоторые комментаторы, в ошибку(или не ошибку) "Waiting for incoming connection with ide key 'PHPSTORM'.", махнул рукой и пошёл дальше.
Уже сижу делаю "большую Домашку" в конце уровня "Пишем Блог" и начал плавать в объёме кода, ну, думаю, тут то Дебагер мне поможет, вернулся, проломал голову, но не тут то было. Неумолимое ВэйтинФо. Исходя из комментов пришёл к выводу, что это проблема на стороне браузера, опробовал кроме Хрома Фаерфокс, установив в него аналогичное расширение же. А воз и ныне там(
С чего вы взяли, что это ошибка? Вам IDE пишет о том, что всё ок и она ждёт входящего соединения. Просто идите дальше по уроку.
Ну это понятно, но не понятно почему соединения не происходит. Все пункты урока выполнены: PHPStorm, как мы видим, настроен, Дебаг для браузера установлен, Айдикей настроен, сэйв нажато, дэбаг в панели запущен, брэйкпоинты выставлены, страница обновлена всеми возможными способами, но просто грузится до конца, отклика в IDE никакого. Понятно, что с вероятностью 99% я где то что то упустил, не понятно - что именно)
А xdebug на сервере точно работает? Выведите phpinfo(). Если всё ок, то там будет информация об xdebug.
Напиши в личку в телегу
MacOS не поддерживает openServer, поэтому не получается по интсрукции прописать xDebag, я работаю в XAMPP, поэтому немного по другому все
Ну, там надо руками расширение XDebug поставить.
в правом нижнем углу у меня нет вкладки "Watches", как ее включить?
Привет. Гуглил уже?
Опенсервер на php 7.2 debug отказывается работать Перехожу на 7,0 и все норм.
На 7.1 попробуй
На 7,1 то же самое. Проверил в этих версиях в php нет php_xdebug.dll скачал на оф. сайте нужные версии , поставил и все нормально заработало.
Красава)
Всем привет!
Столкнулся с проблемой The script 'W:\domains\localhost\phpzone - debug.php' is outside the project. Кто-нибудь знает как ее решить? Читал в интернете, говорят, что надо сделать путь не на файл, а на папку с файлом, но у меня ничего не получилось(
И так всё работает, но хотелось бы избавиться от этой надписи
Открой проект с диска W. Написано, что этот файл вне проекта. Из-за того что он открыт по другому пути (с диска C или еще откуда-то).
Здравствуйте!
Сделал все как вы делали, но при нажатии на зеленую таракашку в PHPstorm'e пишет Error running 'Xdebug': Port 9000 is busy,с чем это связано?
Посмотрите, какая программа занимает 9000 порт в вашей системе. Погуглите как
Этот порт зарезервирован у меня в openserver'e (настройки -> сервер ->php), может быть такое? могу ли я поменять там?
Напиши в телеге или в вк
Всё окей, установил и разобрался. Единственный вопрос - когда и как нужно расставлять брейкпоинты?
Всегда, когда хочешь увидеть текущее выполнение программы.
У меня почему-то не отображается окошко Watches. и что-то ни как не могу понять в чем проблема...
Его надо включить
где, я реально туплю и не могу найти галочку которую нужно поставить, что бы он включился
Найдите окошко Variables, там в левом нижнем углу значёк >>. Нажимаете на него, появляется символ очки, нажимаете и появляется окошко часы.
Учись гуглить. Первая ссылка
Почему данный код:
выводит значения с нуля, а не с конца '3'?
Строка '$x-1' работает же на уменьшение от большего к меньшему?
Всем спасибо за участие, ответ был получен в чате.
Затем почитав еще несколько статеек про рекурсию и опробовав примеры понял эту фишку.
Рекурсия в PHP выполняя проход по циклу собирает результаты в стек, как стопка книг, заполняя его снизу вверх. А затем, когда граничное условие выполнено, начинает возвращать результат, но теперь уже берет значения с конца, т.е. с верхней части стопки книг (стека).
Получается, что заполнение идет 5, 4, 3, 2, 1, 0, а выборка идет в обратном порядке.
Красава!
Ыыыыыых! Вот полезная штука! А то все в уме, да в уме... Спасибо
Пожалуйста)
у меня не отображается Watches
нашел Watches находится во вкладке variables нужно только нажать на плюс
Молодец)
php 7.2, phpstorm 2019.2
во втором примере не входит по f7 в функцию getSum, приходится использовать Force Step Into (Alt + Shift + F7) странное поведение.
А если fn+F7?
На стационарном нет Fn
Если нет, то можно поискать в биосе эту настройку. Ну или просто в шторме зайти и переопределить хоткеи для этого действия, нажав на своей клавиатуре f7, и посмотреть какой хоткей в итоге подставится. Дебажить мышкой - не выход.
Сделал всё как описано в уроке, но возникла проблема. Не могу включить дебаг в PhpStorm, так как возникает вот такая ошибка: Error running 'index.php': Interpreter is not specified or invalid. Press ''Fix'' to edit your project configuration.
p.s. Спасибо за то, что вы делаете!
Напиши в личку ВКонтакте или телеге
Прошу помощи, никак не пойму. В общем брэйкпоинт срабатывает, в браузере загрузка подвисает, но PHPStorm никак не хочет показывать что там в переменных на текущий момент.
Напиши в личку ВКонтакте или телеге
В чем может быть проблема в Xdebug? У меня стоит SublimeText 3, вроде и страница долго грузит, и стрелочка появляется, но в окне отладки вообще пустота...
Я предупреждал, выбираете другие инструменты - разбираетесь сами.
Здрасьте! в чем проблема Waiting for incoming connection with ide key 'PHPSTORM'? сделал как на видео. и еще openserver у меня новая версия.
Ну всё правильно. Пишет что ожидает входящее соединение. У меня в видео так же пишет.
Видео пересмотрел у вас там такого не вышел как "Waiting for incoming connection with ide key 'PHPSTORM'".
Думаете что я в стороне гугла нечего не установил?! сделал как на видео.
Может мне стоит скачать программы по старой версии?
В данном моменте стоит openserver
Apache_2.4-php_7.0-7.1-x64
PHP_7.3-x64
Mysql-5.6
Напиши в личку в телеге или в вк
решили проблему? если да, то какое решение? у меня та же проблема!
Конечно решили) Пишите в чат в телеграме. Но вообще ошибка всегда в том, что какую-то деталь делают не как на видео.
Большое спасибо за урок. Очень классный инструмент, облегчает дорогу новичкам.
Получилось настроить?
Все получилось. В вашей работе часто используете данный инструмент?
Каждый день
Всё проделал! Понял более-менее рекурсию) Настроил и в хроме и в мозиле! Все работает!
По рекурсии переменная получает 7 и делает столько же шагов назад.
На экране:
int(7) int(6) int(5) int(4) int(3) int(2) int(1) int(0) 0,1,2,3,4,5,6,7
var_dump добавил для наглядности просто, чтобы понять лучше что происходит:) Спасибо Артем!
Отлично. Не забывай указывать типы аргументов у функций!
Привет! Что то я себе мозг сломал уже на два дня!))
Когда проходил эти настройки просто посмотрел что что то отображается и пошел дальше по урокам. Теперь когда пришла пора применять на практике, дебаг мне показывает только глобальные массивы. Переменных не хочет показывать категорически. Я и на других версиях PHP пробовал.
Судя по скриншоту, сейчас он выполняется на второй строчке index.php, и еще попросту не добрался до объявления переменных. Нажимай F8
Спасибо за ответ , но это я тупонул и не тот скрин прицепил. Вобщем проблему решил обновлением Phpstorm Сначала попробовал настроить дебаг в других редакторах, все получилось, потом обновил Phpstorm до версии 2019 года и все заработало.
Ну норм)
Я всё делал правильно, но когда я нажимаю на значок жучка в хроме и перезагружаю страницу, ничего не происходит.
Вот такие вот у меня настройки в обоих php.ini
У меня стоит ubuntu 18.04 и конечно-же нет openServera, стоит обычный lamp, в остальном настройки такие-же, как и у автора. Я так понимаю: для того, чтобы начать дебагинг файла ndex.php который я создал в папке index, я должен открыть в хроме http://localhost/index/, потом нажать на значёк жучка и обновить страницу. но после этого ничего не происходит
Кстати я не понимаю, почему у автора адрес проекта - это http://myproject.loc/, ведь у него по-идеи до папки myproject.loc должен быть адрес сервера(localhost или 127.0.0.1)
Я также пытался обновлять страницу http://localhost/, но в любом случае ничего не происходит
Ну а в phpinfo выводится инфа о том, что xdebug работает?
Классный урок! Теперь многое понятно! Плюс почитал комментарии чтобы понять как и почему значения выводятся в обратном порядке, теперь всё супер)) Пробовал все задачи из прошлого дз, отладчик работает без проблем.
Красава)
Супер!
Запятая взятая с в апострофы - добавляет запятую между каждым числом при выводе.
Это как правило? Такое сочетание добавляет запятые между каждым символом или как это сформулировать, чтобы понять?
Прочитайте про конкатенацию строк
Настроил отладку. Все работает. Пробую дебажить.
Отлично!
Здравствуйте. На данном этапе возникла проблема. У меня macOS, следовательно пользоваться OpenServer невозможно. Пользуюсь MAMP. Прежде чем писать, естественно, загуглил - XDebug встроен по умолчанию, но только в платную версию MAMP-PRO. Хотелось бы получить совет от автора, какой сервер, совместимый с macOS, вы бы порекомендовали, чтобы в дальнейшем, в рамках данного курса, не возникало проблем. Спасибо.
Здравствуйте. Сам использую MAMP PRO на маке
Разобрался как настроить Xdebug на бесплатной версии MAMP. Теперь все работает. Идем дальше ))
Супер)
подскажи пожалуйста как? то что гуглю - не работает
Спасибо!
День добрый,
Я дошла до пункта: "Теперь возвращаемся в Chrome, заходим на адрес нашего проекта (в моём случае http://myproject.loc/) и после того как зашли(!!!) жмём на значок жучка (уже в Chrome) и выбираем пункт “Debug”."
После обновления страницы она не повисла в загрузке, а в PhpStorm в разделах написано frames: "frames are not availiable"; varibles: "Waiting for incoming connection with ide key 'PHPSTORM'".
Использую openserver и PhpStrom.
Привет, напиши в личку
в отладчике в Variable надпись: "Waiting for incoming connection with ide key 'PHPSTORM'".
И ещё, F7, F8, F9 - у меня не работают, т.е. никаких действий не происходит
Попросите помощи в чате в телеге. Но перед этим можно попробовать открыть проект в шторме с диска W:
Артём, а можете рассказать про настройку отладки PHPSTORM+DOCKER(php-fpm+nginx), когда приложение запущено в DOCKER-контейнере?
Был бы Вам очень признателен!
Этот кейс сейчас очень востребован, и я думаю, неплохо было бы пролить свет на эту темную проблемку.
Сделал как в видео, то есть добавил строчки для xdebug в openserver и после настроил в phpstorm,но всплывающего окошка в правом верхнем углу экрана нет и пишет addconfiguration, что делать?
P.S проблема решена
Добрый день.
У меня возникло пару проблем:
1) Установил все как в уроке было, отладчик запускается и информацию показывает, НО.
Когда обновляешь страничку она в браузере не грузится, но информацию отладчику передает.
Если Отключить отладчик, тогда страница грузится.
2) В видео на времени 11.30
При перезапуске отладчика в поле дебага все убралось и отобразился только один уровень с итогом. Чтоб появилась вся информация, пришлось снова нажимать Ф8 или Ф9
И после этого все равно в Watches только в одном стеке есть значение Х
Сейчас посмотрел, после выполнения всех итераций кода страничка прогружается.
Правильно ли я понял касательно работы рекурсии в последнем задании прошлого ДЗ: получается, что тот код сначала считает все значения Х и после их выводит от обратного? Так всегда происходит?
Т.к. у меня сложности возникли именно с выводом значений в обратном порядке, для этого пришлось вводить вторую переменную.
А у меня точка останова не срабатывает.
Ну и "Waiting for incoming connection with ide key 'PHPSTORM'" в Variables.
В phpinfo() инфа о xdebug есть - v2.9.8.
На ошибки в коде PhpStorm указывает.
Скорее всего пути не сходятся. Опенсервер при запуске монтирует виртуальный диск?
Точно, путь был неправильно прописан.
Моя ошибка.
Теперь вроде всё заработало!
Супер!
Добрый день, не получается настроить отображение var_dump построчно. В ini-файле раскомментировала следующие строки:
не помогает...
Попробуйте по этой инструкции
У меня XDebug не работает как должно.
Во вкладке Variables написано:
"Waiting for incoming connection with ide key 'PHPSTORM'".
Он так и должен писать. Посмотрите видео, у меня так же пишет)
Привет!
Обновлял у себя версию openserver'а. В версии Open Server 5.3.8 используется версия Xdebug 3.0.2, и для активации необходимо использовать другие параметры для php.ini так как со старыми уже не работает.
*Примечание: в Xdebug 3 по умолчанию прописан порт 9003, поэтому надо либо его сменить на 9000, либо в phpStorm поставить порт 9003.
По параметрам получилось следующее:
Привет! Но по уроку же и в шторме выставляем 9000 и в php.ini. Разве нет?
Да, это я напимер написал. В документации написано что из-за изменения порта по умолчанию, слушаются и 9000 и 9003. В общем не важно. Суть в новых параметрах для пхп.ини
Параметры:
Убрали из новой версии в принципе.
С дебагером разобрался, всё настроено, всё работает, но вот видимо рекурсию понял не до конца. Точнее проблема как и у всех комментаторов, когда дошли до нуля как echo начинает отрабатывать и выводить 1, 2, 3 и т.д.
А это обязательное требование, устанавливать Debag?
Нет. Но без него придется тяжко
:beetle: Install and Configure xDebug v3 on Ubuntu for PhpStorm :elephant:
Install xDebug php extension
xdebug.ini
xdebug.ini
file path should look like this/etc/php/7.4/mods-available/xdebug.ini
xdebug.mode=debug,develop
xdebug.start_with_request=default
xdebug.idekey=PHPSTORM
xdebug.client_port=9003
xdebug.file_link_format=phpstorm://open?%f:%l
sudo service apache2 restart
sudo phpdismod xdebug
sudo phpenmod xdebug
sudo phpdismod -s cli xdebug