Отладчик PhpStorm не запускает целевые файлы php при отладке - PullRequest
0 голосов
/ 07 февраля 2020

Я создал приложение Yii2 с использованием Docker контейнеров, которые я хочу отлаживать. Используя отладку с нулевой конфигурацией здесь Я смог легко запустить сеанс отладки, просто активировав значок «прослушивания» и захватив внешнюю связь с помощью.

enter image description here

Отладка работает нормально, но я заметил странное поведение в IDE во время отладки.

Я установил точку останова на строка № 3 из frontend/index.php. Как и ожидалось, когда я отображаю страницу, достигается точка останова.

enter image description here

Нажав F8 , я могу перешагнуть код, но когда я прихожу к строке № 17 и нажимаю F7 (шагая в), кажется, что отладчик все еще выполняет свою работу, продолжая свой путь по коду (как вы можете заметить на панели 'Frames'), но обычно в IDE должен открываться целевой файл и покажите прогресс в коде, но это не так.

Если я продолжу нажимать F8 , файлы и методы на панели «фреймы» будут продолжать меняться, но это единственный файл, который IDE покажет индекс. php

enter image description here

Еще одна вещь, которую я заметил, это предупреждение на панели «Переменные»:

Путь к удаленному файлу app.../BaseYii.php не сопоставлен ни с одним путем к файлу в проекте

Должен ли я вручную сопоставлять каждый файл в проекте ??? Надеюсь, что нет ...

Это, вероятно, ничего сложного, но я застрял.

У кого-нибудь есть подсказка?

Вот мой экран настроек сервера.

enter image description here

Как мне сопоставить проект root?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020

Должен ли я вручную сопоставлять каждый файл в проекте ??? Надеюсь, что нет ...

Нет, вам не нужно сопоставлять каждый файл (дети будут наследовать сопоставление из родительской папки).


На основании вашего описания это звучит как Первоначальное отображение выполняется на немного более низком уровне (папка frontend), пока код Yii находится в папке, которая находится за ее пределами. Если это так, то просто исправьте сопоставление вручную на Settings/Preferences | Language & Frameworks | PHP | Servers.

На основе вашего скриншота Servers вы можете сопоставить вашу C:\Users\Francois\Projects\myms-demo (проект root папка) с /app и все. Затем вы можете удалить это существующее сопоставление для /app/frontend/web позже (так как оно будет унаследовано от родителя и, следовательно, не нужно).

C:\Users\Francois\Projects\myms-demo <--> /app
0 голосов
/ 07 февраля 2020

Большое спасибо LazyOne за вашу помощь!

Я бы точно не решил эту проблему за один день без вас.

Решение этой проблемы заключается в том, что сразу после перехватывая входящее соединение из Xdebug , вы должны go до Серверы страница конфигурации ( Файл / Настройки ... и Языки и фреймворки / PHP / Серверы ), удалить найденную запись в Абсолютный путь на сервере для каталога web и замените его на / app в каталоге проекта root (здесь C: \ Users \ Francois \ Проекты \ myms-демо ).

Это позволит вам отладить все php файлы в проекте.

При использовании Yii2 Advanced Application (YAA) существует небольшой уровень сложности. YAA состоит из бэкэнда и внешнего интерфейса в одной папке проекта. Если вы не работаете с vhosts на стороне DEV, вам потребуется при установке с помощью docker -compose получить доступ к вашим приложениям с помощью портов. : 21080.

По этой причине вам потребуется две точки входа на сервер с соответствующим отображением в каталог проекта root.

...