#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-адресе, когда вы используете функциональность типа «Открыть в браузере».
Settings/Preferences | Build, Execution, Deployment | Deployment
- Выберите свою запись развертывания. Если у вас его нет: создайте новый (например, «На месте» будет работать — файлы не будут скопированы) и настройте его.
- Отметьте такую запись как значение по умолчанию для этого проекта. Если у вас нет записи по умолчанию, IDE создаст URL-адреса для встроенного простого веб-сервера PhpStorm.
- Теперь важная часть: на вкладке «Сопоставления» создайте дополнительную запись сопоставления. Он должен связать вашу локальную
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-адрес, а затем использовать его с помощью кнопок запуска или отладки:
- https://www.jetbrains.com/help/phpstorm/run-debug-configuration.html
- https://www.jetbrains.com/help/phpstorm/run-debug-configuration-php-web-application.html
В качестве альтернативы просто используйте обычные старые закладки в выбранном вами браузере и инициируйте отладку оттуда (например, расширение помощника Xdebug: доступно для каждого современного браузера), используя то, что JetBrains назвал подходом с нулевой конфигурацией: https://www.jetbrains.com/help/phpstorm/zero-configuration-debugging.html
Комментарии:
1. Отличный ответ, но, чувак, эта светлая тема сожжет тебе глаза:'(
2. @matiaslauriti Это повредит вашим глазам в 10 раз больше, когда вам нужно переключаться между светлым веб-сайтом и темной IDE … особенно, когда в вашей комнате мало света (например, в вечерние часы и т. Д.). Темная / Светлая тема — это личный выбор. Если вы поищете в Интернете актуальные исследования по этому вопросу, вы обнаружите, что light one на самом деле лучше для ваших глаз в нормальных условиях.