Чат Telegram
Группа ВКонтакте
Новый комментарий


trialex3

У меня в проге после настройки пишет Waiting for incoming connection with ide key 'PHPSTORM'.
Как можно исправить?
UPD. Нашел в интернете решение.

ivashkevich

Это разве нужно исправлять? Всё же вроде правильно.

Maxim

О, а помогите мне тоже найти. Сам не справился.

Tays

Здравствуйте
У меня XAMPP и NetBeans. Как настроить Xdebug?

ivashkevich

А почему не PHPStorm и OpenServer, как я советовал?
Если принимаете решение использовать другие инструменты, значит вы должны понимать, ради чего это делаете. И беретесь самостоятельно разбираться как это делать по-другому. Мне лень, да и незачем копаться в том, с чем я не работаю. Это бы заняло очень много времени и не принесло пользы. Так что, придется вам погуглить самому =)

jetsaus

В каталоге установки XAMPP ищешь файл php\php.ini и правишь его в соответствии с уроком. Перезапусаешь apache.В NetBeans не знаю, но думаю тоже не сложно, пользую Шторм.

Tays

У меня уже была установлена эта сборка. Буду гуглить дальше.

serb2017

По теме урока всё установилось и работает нормально. За исключением F8 и F9.
F9 вызывает меню Пуск,
F8 вызывает меню для подключения к проектору.
F7 работает адекватно.
Управлять можно без клавиш, иконками в PHPStotm.
Пока не разобрался как устранить проблему. В Windous 7 + SP1 (в моём случае) эти клавиши выдают аналогичный описанному результат.

ivashkevich

Значит у вас в BIOS выставлена настройка горячих клавиш. У вас есть на клавиатуре кнопка Fn? Как правило она слева внизу.

serb2017

С помощью отладчика наконец разобрался с рекурсивной функцией(РФ).
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 на предыдущий

ivashkevich

Мои поздравления =)

Andreo

Рекурсивная функция мне напомнила сюжет фильма "Начало". Все как там...

ivashkevich

:D не смотрел, кстати. Надо будет глянуть на выходных.

ArtemijeKA

Согласен, мне тоже...

Lungren

Установил chrome и расширение, но жучка на консоли браузера не вижу!

Lungren

А, вижу, но он в яндексовском браузере...

ivashkevich

Кек, то есть установили в хромовском сторе, а появился он в Яндекс.Браузере?

Lungren

Кекаете?

ivashkevich

А-то! :)

Lungren

В чём дело?!

Lungren

Да, и модификация PHPstorm уже другая...

ivashkevich

Что такое модификация? Версия?

Lungren

Да

ivashkevich

В плане отладки там всё то же самое. Разве нет? Я вот только вчера себе поставил, и никаких изменений не заметил.

Lungren

Согласен вполне

ivashkevich

Ок. Кстати, на комментарии лучше отвечать, нажимая на "Ответить" под конкретным комментом.

Lungren

Какая у Вас версия Сторма?

ivashkevich

2017.3.2

1nSide

Сделал все как в видео уроке но после того как обновляю страничку в браузере с включенным дебагером ничего в пхп шторме не происходит, дебагер ничего не пишет

ivashkevich

Напиши в ВК, что-то всё равно не так :)

grishandze

Здравствуйте. Сделал все по инструкции, но XDebug не работает.
Во вкладке "Frames" пишет: "Frames are not aviable",
В "Variables": "Waiting for incoming connection with ide key 'PHPSTORM'".
Ничего дальше не происходит. Не могу решить. Помогите пожалуйста. Заранее спасибо.

З.Ы. Вместо Open Server использую WampServer, но я так понял, что отличаются они друг от друга мало.

ivashkevich

Отличаются, скорее всего там вообще нет XDebug. Прошу меня понять и простить, но у меня нет времени разбираться со всеми серверами на свете, если хотите чтобы работало - сделайте как в уроке, пожалуйста :)

grishandze

Разобрался. Огромное спасибо за ваши курсы. Все максимально доходчиво объяснено :)

mik05bk@gmail.com

А почему после первого выполнения 7 строки кода, сразу не выполняется 8?

ivashkevich

Потому что снова начинает выполняться функция numbers(), а на первой её строке стоит breakpoint, и отладчик на нём останавливается.

nemo.dont@gmail.com

по ходу я совсем тупая ) все настроила, все работает, но происходящий процесс ничего не прояснил. я вижу, что переменная меняется, становясь меньше на 1. но сложить это хоть в какой-то понятный пошаговый процесс в своей голове я не могу. т.е. я не могу представить как работает код, что там происходит на его задворках. и возникает вопрос, стоит ли мне продолжать или я безнадежна?

ivashkevich

Паниковать не стоит, рекурсия не всем даётся с первого раза. Можете пока вообще её пропустить - это не помешает дальнейшему прохождению курса. Но я бы советовал Вам с ней всё же разобраться - погуглите другие уроки на тему рекурсии, возможно найдёте какое-нибудь более наглядное пособие. Но, опять же, повторюсь - не обязательно. Не поймёте - чёрт с ней, проходите дальше ;)

RusTaylor

У меня в консоли пишет следующее:
Waiting for incoming connection with ide key 'PHPSTORM'
Сделал так же как и написано.

ivashkevich

Это хорошо, значит отладчик ждёт входящего соединения. Посмотрите видео ещё (в начале урока) - там вообще всё как есть показано.

RusTaylor

Спасибо, всё работает)
Спасибо за уроки)

ivashkevich

Отлично! Всегда рад помочь =)

AxLT

Есть проблема по запуску XDebug. Настроил все верно (перепроверял). но при перезагрузке странице в браузере она не подвисает в загрузке, а просто выдает конечный результат как и до установки брейкпойнта. в PHPStorm вижу следующее:
описание картинки

ivashkevich

Все норм, он ждет соединения. Настраивайте плагин в хроме и перезагружайте страницу. Все как на видео сделайте.

AxLT

Да, уже заработало, спасибо

ArtemijeKA

У меня 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://webshake.ru/php-training-course/11
7. Перезапустить lampp.
ArtemijeKA

Спасибо огромное какой материал качественный!
Кажется теперь я ее понял:
Сначала идет проработка вызова функции в самой себе.
А только потом проработка всех выводов echo $arg, все равно какая-то пелена, что за правила отработки echo и функции внутри функции? Почему echo потом отрабатывает в обратном порядке ведь числа поступали в порядке 3 2 1 0, а он их после отработки выводит 0 1 2 3, интересно.

function numberBy0ToArg_v2($arg)
{
    if ($arg >= 0) {
        $arg - numberBy0ToArg_v2($arg - 1) . '<br />'; 
        echo $arg; 
    }
}
numberBy0ToArg_v2(3);
ivashkevich

Ответил в комментах к прошлому уроку

jetsaus

Пасиб автору!
Классный и ёмкий урок для новичков.

ivashkevich

На здоровье)

antoxa

Спасибо, очень полезно!

ivashkevich

Рад быть полезным)

Kirill.K

Когда проходил данный урок упёрся, как и некоторые комментаторы, в ошибку(или не ошибку) "Waiting for incoming connection with ide key 'PHPSTORM'.", махнул рукой и пошёл дальше.
Уже сижу делаю "большую Домашку" в конце уровня "Пишем Блог" и начал плавать в объёме кода, ну, думаю, тут то Дебагер мне поможет, вернулся, проломал голову, но не тут то было. Неумолимое ВэйтинФо. Исходя из комментов пришёл к выводу, что это проблема на стороне браузера, опробовал кроме Хрома Фаерфокс, установив в него аналогичное расширение же. А воз и ныне там(

ivashkevich

С чего вы взяли, что это ошибка? Вам IDE пишет о том, что всё ок и она ждёт входящего соединения. Просто идите дальше по уроку.

Kirill.K

Ну это понятно, но не понятно почему соединения не происходит. Все пункты урока выполнены: PHPStorm, как мы видим, настроен, Дебаг для браузера установлен, Айдикей настроен, сэйв нажато, дэбаг в панели запущен, брэйкпоинты выставлены, страница обновлена всеми возможными способами, но просто грузится до конца, отклика в IDE никакого. Понятно, что с вероятностью 99% я где то что то упустил, не понятно - что именно)

ivashkevich

А xdebug на сервере точно работает? Выведите phpinfo(). Если всё ок, то там будет информация об xdebug.

ivashkevich

Напиши в личку в телегу

Air-up91

MacOS не поддерживает openServer, поэтому не получается по интсрукции прописать xDebag, я работаю в XAMPP, поэтому немного по другому все

ivashkevich

Ну, там надо руками расширение XDebug поставить.

Luganskiy

в правом нижнем углу у меня нет вкладки "Watches", как ее включить?

ivashkevich

Привет. Гуглил уже?

ashfedor

Опенсервер на php 7.2 debug отказывается работать Перехожу на 7,0 и все норм.

ivashkevich

На 7.1 попробуй

ashfedor

На 7,1 то же самое. Проверил в этих версиях в php нет php_xdebug.dll скачал на оф. сайте нужные версии , поставил и все нормально заработало.

ivashkevich

Красава)

Blook

Всем привет!
Столкнулся с проблемой The script 'W:\domains\localhost\webShake - debug.php' is outside the project. Кто-нибудь знает как ее решить? Читал в интернете, говорят, что надо сделать путь не на файл, а на папку с файлом, но у меня ничего не получилось(
И так всё работает, но хотелось бы избавиться от этой надписи

ivashkevich

Открой проект с диска W. Написано, что этот файл вне проекта. Из-за того что он открыт по другому пути (с диска C или еще откуда-то).

akkuzhin.n@gmail.com

Здравствуйте!
Сделал все как вы делали, но при нажатии на зеленую таракашку в PHPstorm'e пишет Error running 'Xdebug': Port 9000 is busy,с чем это связано?

ivashkevich

Посмотрите, какая программа занимает 9000 порт в вашей системе. Погуглите как

akkuzhin.n@gmail.com

Этот порт зарезервирован у меня в openserver'e (настройки -> сервер ->php), может быть такое? могу ли я поменять там?

ivashkevich

Напиши в телеге или в вк

krollik1000000@gmail.com

[Xdebug]
;zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
;xdebug.default_enable = 1
xdebug.auto_trace = 0
xdebug.collect_includes = 1
;xdebug.collect_params = 4
;xdebug.collect_return = 1
;xdebug.collect_assignments = 1
;xdebug.collect_vars = 1
xdebug.dump.REQUEST = *
xdebug.dump.SESSION = *
xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
;xdebug.dump.COOKIE =
;xdebug.dump.FILES =
;xdebug.dump.GET =
;xdebug.dump.POST =
xdebug.dump_globals = 1
xdebug.dump_once = 1
xdebug.dump_undefined = 1
xdebug.extended_info = 1
;xdebug.file_link_format = ""
;xdebug.idekey = ""
;xdebug.manual_url = "http://www.php.net"
xdebug.max_nesting_level = 256
xdebug.overload_var_dump = 1
;xdebug.profiler_append = 1
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir="%sprogdir%/userdata/temp/xdebug/"
xdebug.profiler_output_name = "cachegrind.out.%H%R"
;xdebug.remote_autostart = 0
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
;xdebug.remote_host = "localhost"
;xdebug.remote_log = "none"
;xdebug.remote_mode = "req"
xdebug.remote_port = 9000
;xdebug.scream = 1
;xdebug.show_exception_trace = 0
;xdebug.show_local_vars = 1
;xdebug.show_mem_delta = 1
;xdebug.trace_format = 1
;xdebug.trace_options = 1
xdebug.trace_output_dir = "%sprogdir%/userdata/temp/xdebug/"
;xdebug.trace_output_name = "trace.%H%R"
xdebug.var_display_max_children = 256
;xdebug.var_display_max_data = 1024
xdebug.var_display_max_depth = 16
;xdebug.remote_cookie_expire_time = 3600

```у меня не так как у тебя в уроке тут нет нескольких строк которые нужно раскомментировать что мне делать??
Bizzzon

Всё окей, установил и разобрался. Единственный вопрос - когда и как нужно расставлять брейкпоинты?

ivashkevich

Всегда, когда хочешь увидеть текущее выполнение программы.

Reechniy

У меня почему-то не отображается окошко Watches. и что-то ни как не могу понять в чем проблема...

ivashkevich

Его надо включить

Reechniy

где, я реально туплю и не могу найти галочку которую нужно поставить, что бы он включился

ivashkevich

Учись гуглить. Первая ссылка

iluha22

Почему данный код:

function numbers(int $x) {
    if ($x == 0) {
        echo $x;
        return;
    }
    numbers($x - 1);
    echo ', ' . $x;
}

numbers(3);

выводит значения с нуля, а не с конца '3'?

Строка '$x-1' работает же на уменьшение от большего к меньшему?

iluha22

Всем спасибо за участие, ответ был получен в чате.
Затем почитав еще несколько статеек про рекурсию и опробовав примеры понял эту фишку.

Рекурсия в PHP выполняя проход по циклу собирает результаты в стек, как стопка книг, заполняя его снизу вверх. А затем, когда граничное условие выполнено, начинает возвращать результат, но теперь уже берет значения с конца, т.е. с верхней части стопки книг (стека).
Получается, что заполнение идет 5, 4, 3, 2, 1, 0, а выборка идет в обратном порядке.

ivashkevich

Красава!

Clawson

Ыыыыыых! Вот полезная штука! А то все в уме, да в уме... Спасибо

ivashkevich

Пожалуйста)

AleksandrNenashev

у меня не отображается Watches

AleksandrNenashev

нашел Watches находится во вкладке variables нужно только нажать на плюс

ivashkevich

Молодец)

Floppy

php 7.2, phpstorm 2019.2
во втором примере не входит по f7 в функцию getSum, приходится использовать Force Step Into (Alt + Shift + F7) странное поведение.

ivashkevich

А если fn+F7?

Floppy

На стационарном нет Fn

ivashkevich

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

vladimak2001@gmail.com

Сделал всё как описано в уроке, но возникла проблема. Не могу включить дебаг в PhpStorm, так как возникает вот такая ошибка: Error running 'index.php': Interpreter is not specified or invalid. Press ''Fix'' to edit your project configuration.
p.s. Спасибо за то, что вы делаете!

ivashkevich

Напиши в личку ВКонтакте или телеге

vtolstov

Прошу помощи, никак не пойму. В общем брэйкпоинт срабатывает, в браузере загрузка подвисает, но PHPStorm никак не хочет показывать что там в переменных на текущий момент.

ivashkevich

Напиши в личку ВКонтакте или телеге

anton-gogo@mail.ru

В чем может быть проблема в Xdebug? У меня стоит SublimeText 3, вроде и страница долго грузит, и стрелочка появляется, но в окне отладки вообще пустота...

ivashkevich

Я предупреждал, выбираете другие инструменты - разбираетесь сами.

Онлайн-курсы PHP и MySQL
Обучение с полного нуля до уровня джуниора!
Начать бесплатно
Логические задачи с собеседований