PhpStorm: изменить URL-адрес после изменения DocumentRoot

#php #laravel #webserver #phpstorm

#php #laravel #веб-сервер #phpstorm

Вопрос:

В настоящее время я запускаю проект Laravel 8, и мой DocumentRoot указывает на public папку.

Итак, если я наберу http://localhost / в моем браузере он показывает мне public папку, потому что я настроил свой веб-сервер таким образом.

В PhpStorm я добавил папку в качестве папки ресурсов и надеялся, что она «поймет», что это новый DocumentRoot.

смотрите это изображение

Однако я заметил, что это не так, потому что, если я нажму Alt 2(чтобы показать в Firefox), он откроется http://localhost/public/index.php вместо того , чтобы http://localhost/index.php

Кто-нибудь знает, как изменить DocumentRoot для PhpStorm, чтобы отладка и открытие страниц в браузере действительно работали с другим DocumentRoot на веб-сервере?

Комментарии:

1. Конечно, это легко .. но это вам не очень поможет. Поскольку это Laravel, вы будете использовать контроллеры и «хорошие URL-адреса» (например, файл для обработки localhost/user/profile НЕ будет находиться в ROOT/public/user/profile файле и т. Д.) Из-за этого такая вещь будет довольно бесполезной.

Ответ №1:

Для этого вам необходимо настроить запись Deployment, потому что именно оттуда IDE получает информацию об URL-адресе, когда вы используете функциональность типа «Открыть в браузере».

  1. Settings/Preferences | Build, Execution, Deployment | Deployment
  2. Выберите свою запись развертывания. Если у вас его нет: создайте новый (например, «На месте» будет работать — файлы не будут скопированы) и настройте его.
  3. Отметьте такую запись как значение по умолчанию для этого проекта. Если у вас нет записи по умолчанию, IDE создаст URL-адреса для встроенного простого веб-сервера PhpStorm.
  4. Теперь важная часть: на вкладке «Сопоставления» создайте дополнительную запись сопоставления. Он должен связать вашу локальную public папку с вашим веб-корнем в URL:
    • «Локальный путь» = PROJECT_ROOT/public
    • «Путь развертывания» = /public/
    • «Веб-путь» = /

введите описание изображения здесь

Теперь, если вы используете «Открыть в браузере» в public/index.php файле, IDE откроет http://YOUR_DOMAIN/index.php URL-адрес и опустит ненужную public/ часть из таких URL-адресов.


Пожалуйста, обратите внимание, что это не очень поможет вам в отладке ваших контроллеров PHP (если вы используете Laravel как задумано).

Поскольку это Laravel, вы будете использовать контроллеры и «хорошие URL-адреса»… и такое сопоставление почти ничего не сделает для вас. Например:

  • Файл для обработки http://localhost/user/profile URL-адреса НЕ будет находиться в PROJECT_ROOT/public/user/profile файле, но, скорее всего, будет находиться в PROJECT_ROOT/App/Http/Controllers/User.php или аналогично).
  • У вас может быть более одного действия внутри 1 файла контроллера.
  • Вам нужно будет создать новое сопоставление для каждого URL-адреса (что совсем не удобно).
  • И САМОЕ главное: если вы будете вызывать свои контроллеры таким образом, вы просто увидите ошибки PHP .. поскольку вы будете обходить весь загрузочный код фреймворка.

Если вы хотите запустить отладчик из среды IDE, вам нужно будет создать конфигурацию запуска / отладки соответствующего типа (например, «веб-страница PHP»), указать там URL-адрес, а затем использовать его с помощью кнопок запуска или отладки:

В качестве альтернативы просто используйте обычные старые закладки в выбранном вами браузере и инициируйте отладку оттуда (например, расширение помощника Xdebug: доступно для каждого современного браузера), используя то, что JetBrains назвал подходом с нулевой конфигурацией: https://www.jetbrains.com/help/phpstorm/zero-configuration-debugging.html

Комментарии:

1. Отличный ответ, но, чувак, эта светлая тема сожжет тебе глаза:'(

2. @matiaslauriti Это повредит вашим глазам в 10 раз больше, когда вам нужно переключаться между светлым веб-сайтом и темной IDE … особенно, когда в вашей комнате мало света (например, в вечерние часы и т. Д.). Темная / Светлая тема — это личный выбор. Если вы поищете в Интернете актуальные исследования по этому вопросу, вы обнаружите, что light one на самом деле лучше для ваших глаз в нормальных условиях.