OSPanel 6 + PhpStorm

6c7b8855c87e94acd586e7e7f054e219d6879d12
Как открыть терминал в PhpStorm с уже активированной средой проекта

В прошлых версиях можно было открывать PhpStorm из меню программы и его терминал получал необходимое окружение.

OSPanel 6 позволяет создавать индивидуальное окружение для каждого проекта. Чтобы терминал PhpStorm при открытии автоматически инициализировал необходимое окружение я нашёл несколько вариантов.

Вариант 1 (пробный, не годится)

В настройках терминала Shell path прописать следующую команду:

c:\windows\system32\cmd.exe /k "d:\ospanel\bin\osp.bat project example.local"

Обратите внимание, что нужно указать верный путь к файлу d:\ospanel\bin\osp.bat. У вас OSPanel может быть установлена в другое место.

example.local - это название вашего локального домена для данного сайта. К сожалению, эту настройку придется прописывать для каждого отдельного проекта.

Вариант 2 (приемлемый)

Один из пользователей чата OSP предложил следующий вариант

C:\Windows\system32\cmd.exe /k for %f in (%CD%) do @osp project %~nxf

Здесь предполагается, что каталоги вашего проекта имеют название, идентичное локальному домену для него.

Вариант 3 (упоротый)

Еще один вариант https://t.me/ospanel_chat/1/9663

Как оказалось, настройка Shell Path вовсе не проектно-зависимая и отдельно для каждого проекта индивидуальную команду для активации среды задать не получается.

Написал батник project.bat, разместил его в директории OSPanel/bin, содержание следующее:

@echo off

if exists "./.osp/project.ini" (
     for /f "tokens=1,2 delims= " %%a in (./.osp/project.ini) do (
         set str=%%a
         echo %%a | findstr [ > NUL
         if not ERRORLEVEL 1 goto run
     )
) else (
   echo not found
)

goto end

:run
set str=%str:~1,-1%
osp project %str%

:end

В настройке Шторма в Shell path указал следующее:

c:\windows\system32\cmd.exe /k "project.bat"

Хорошо работает только если каталог .osp находится  в рабочей директории проекта и содержит один домен =(

Вариант 4 (оптимальный)

Почему-то я сразу не догадался, но ведь есть проектно-зависимая настройка – Environment Variables.

В ней можно указать любую переменную окружения для данного проекта. Этим можно воспользоваться, чтобы указать там имя домена. А дальше, либо использовать ее прямо в команде Shell path, как указано на скрине. Либо совместить с предыдущим вариантом №3, добавив условие в файл project.bat

@echo off

if not "%OSP_DOMAIN%"=="" (
    osp project %OSP_DOMAIN%
    goto end
)

IF EXIST "./.osp/project.ini" (
     for /f "tokens=1,2 delims= " %%a in (./.osp/project.ini) do (
         set str=%%a
         echo %%a | findstr [ > NUL
         if NOT ERRORLEVEL 1 GOTO run
     )
) ELSE (
   echo not found
)

goto end

:run
set str=%str:~1,-1%
osp project %str%

:end 

Теперь терминал будет сразу открываться в нужной директории и с необходимым окружением.

 

Комментарии (6)

Прохожий

Спасибо!

Прохожий

Добрый день! Как сделать, чтобы терминал открывался в директории public проекта? Опция Start directory не влияет: https://i.imgur.com/J1gfoXI.png

delphinpro

Добрый день! Как сделать, чтобы терминал открывался в директории public проекта? Опция Start directory не влияет: https://i.imgur.com/J1gfoXI.png

Директория, в которой будет открываться терминал задаётся опцией project_dir в файле .osp/project.ini

[mysite.local]
project_dir = {base_dir}/public

Все доступные параметры перечислены здесь: https://github.com/OSPanel/OpenServerPanel/wiki/Документация#секция-имя_домена-1.

Прохожий

Не нашёл куда вам можно написать, поэтому напишу здесь. Пожалуйста, очень прошу, напишите пожалуйста как работать со связкой OSPanel 6, XDebug и PHPStorm, я так и не смог до конца разобраться как заставить это всё нормально работать, буду очень благодарен!

delphinpro

Поддержка оказывается на официальном форуме и в telegram-канале https://ospanel.io/forum/ https://t.me/ospanel_chat Я тоже там присутствую, но конкретно по XDebug не смогу помочь.

Прохожий

Директория, в которой будет открываться терминал задаётся опцией project_dir в файле .osp/project.ini

Благодарю.

Вы можете оставить комментарий:

Поддерживается разметка markdown

Комментарий будет опубликован после модерации