Phpstorm не открывает файлы
Используем PhpStorm для разработки
На текущий момент есть много замечательных IDE с поддержкой PHP/JS/HTML, но я с давних пор пользуюсь
PhpStorm
Далее - подробная инструкция как начать работу с этой замечательной IDE.
[spoiler]
Рассмотрим самый простой вариант - битрикс уже развернут на хостинге, есть ftp/sftp доступ. Создаем новый проект:
Выбираем создание проекта из исходников, доступных по ftp:
Задаем название проекта, папку, где будет находиться проект и обязательно выбираем "custom":
В дополнительных настройках много пунктов, нам потребуется изменить следующие:
"Upload changed files automatically to the default server" - "Always" - загружать измененные файлы на сервер
"warn when uploading over newer file" - "Compare content" и "Notify about remote changes" - полезно, если над проектом работает больше одного разработчика - phpstorm будет предупреждать об изменениях файлов на сервере, это поможет избежать перезаписи изменений друг друга.
Настраиваем параметры соединения:
Далее - необходимо указать корневую папку сайта на сервере (Project root) и исключить все остальные папки(или по крайней мере папку bitrix. Иначе скачивание проекта может занять несколько часов, проще это позже сделать в фоновом режиме).
Открываем в правой части экрана вкладку "Remote Host" и заходим в настройки (иконка с тремя точками рядом с названием подключения). Во вкладке "Excluded path" удаляем из исключений все локальные папки
Теперь можно выкачивать все остальное - для этого удаляем папку из исключений (правый клик, Remove path from excluded) и выкачиваем в проект(Download from here)
Проект готов к работе:
Работаем с проектом
Помимо стандартных фич (автодополнение кода, проверка на ошибки и т.д.) в PhpStorm есть множество возможностей, которые могут послужить стимулом для миграции
- Генерация html, посмотреть можно здесь
- Автоформатирование кода (особенно актуально, если приходится разбирать стандартные компоненты и шаблоны битрикса)
- LiveEdit
Еще одной киллер-фичей являются сниппеты для подключения компонентов. Для этого необходимо установить bxCompSnpt и добавлять компоненты из IDE простым нажатием комбинации Ctrl+J
В веб-разработке есть два прекрасных инструмента: IDE для языка php от JetBrains phpStorm и сборка WAMP для Windows OpenServer. Однако в каждом из инструментов есть свои косяки и так просто не получается их преодолеть.
Проблема из-за путей OpenServer
Часть этих косяков происходит от того, что в OpenServer применяется несколько версий серверов Apache и NGINX, несколько версий интерпретатора php, несколько версий баз данных MySQL. Для разработчика это в плюс, поскольку все настроено и работает, а значит не нужно ломать голову как самому это связать. Но с другой стороны получается нужно хранить несколько версий настроек и как-то их динамически подсовывать системе в соответствии с выбором пользователя.
В OpenServer настройки хранятся x:\OpenServer\userdata\config\, причем пути заменяются на специальные теги типа %sitedir%, %progdir%. Из-за этого тупо указать эти файлы для настроек не получается, поскольку они просто не будут работать.
А «скомпилированные» для работы файлы хранятся x:\OpenServer\userdata\temp\config\. Вот только их опять же нельзя использовать, поскольку они при следующем запуске со сменой профиля будут переписаны. Да и php.ini должен лежать в корне папки интерпретатора, иначе все идет по умолчанию, что очень не хорошо.
А IDE phpStorm, да и не только она, требует указанию путей к php, его настройкам и так далее. Из-за этого не работает функционал работы с Composer, консоль, xDebug.
В других сборках этой проблемы нет, потому что либо вы берете сборку с одной версией Apache, одной версией php и одной версией MySQL, либо файлы настроек хранятся там, где они должны быть.
Однако из-за этой особенности не стоит отказываться от такой замечательной сборки!
Решение проблемы путей «в лоб»
Так что этот путь есть, но он не слишком перспективный на мой взгляд.
Другое решение этой проблемы – руками внести изменения в пути переменной PATH для командной оболочки. Судя по документации, раньше был в x:\OpenServer\userdata\config\ файлик path.txt, где были прописаны эти пути и можно было его в настройках подключить. Сейчас его нет, так что можно попробовать его самостоятельно составить и подключить.
Но мне кажется, что этот путь тоже излишне прямолинеен и сложен.
Элегантное решение проблемы путей в OpenServer от «производителя»
После штудирования документации и форума, по некоторым намекам, есть более простое решение проблемы.
Это включение phpStopm в меню OpenServer. Делается это очень просто: правая клавиша мыши на значке – Настройки – Закладки
Настройка меню OpenServer для запуска phpStorm
Маленькая подсказка: в категорию забивайте свое название (я забил IDE) и автоматом создалась отдельная папка.
Точно так же, с Composer адекватно работать можно, только если запустить из контекстно меню OpenServer, поскольку ему требуется доступ к интернету по протоколу SSH, а по умолчанию это расширение работает только после настройки в php.ini.
Но если делать запуск через выпадающее меню, то и Composer прекрасно работает, и в phpStorm работает Composer, Artisan и консоль.
Настройка phpStorm для работы с php
Но прописать вызов phpStorm в контекстном меню OpenServer лишь половина задачи. Теперь нужно прописать пути до php в самом phpStorm.
Для этого запускаем из контекстного меню OpenServer phpStorm и создаем проект, который вы хотите разрабатывать. Я не буду останавливаться на этом подробнее, тут ничего сложного нет.
Настройки в phpStorm
Затем идете в верхнее меню File-Settings и в левой колонке ищите пункт php.
Настройки php в phpStorm
Тут определяете пункт со своей версией php в выпадающем списке, затем ниже нажимаете кнопку с точками для определения пути до интерпретатора.
Нажимаем плюсик в левом верхнем углу и вводите нужное имя, а затем ищем свой интерпретатор. Если все правильно сделано, то phpStorm проверит вашу версию и напишет версию и версию дебагера.
В данной статье я хочу описать несколько настроек, которые я изменил в PhpStorm для удобства работы. PhpStorm можно настроить под себя один раз, а потом использовать включенный в программу удобный экспорт/импорт настроек, с помощью которого можно переносить настройки с одного ПК на другой или сохранять их при переустановки ОС.
PhpStorm делит настройки на глобальные, которые применяться автоматически при создании нового проекта и настройки проекта, которые индивидуальные для какого либо конкретного проекта и не распространяются на другие.
Настройки проекта меняются при открытом проекте, достаточно открыть настройки (File -> Settings) и большая часть настроек будет относиться к открытому проекту.
Чтобы сделать настройку общей для IDE и применять её автоматически для всех новых проектов необходимо закрыть проект и нажать на Configure -> Settings
Замена пробелов на табуляцию
В своих проектах я использую отступы в виде табуляции, PhpStorm по-умолчанию делает таб из четырёх пробелов. Поэтому это первая настройка, которую я поменял.
Чтобы PhpStorm создавал таб из табуляции, а не из 4 пробелов необходимо зайти в настройки (File -> Settings), открыть вкладку Editor -> Code Style.
Нас интересуют вкладки PHP и HTML (конечно вы можете поменять настройку и для других типов файлов). Выделяем вкладки по очереди и ставим галочку напротив пункта Use tab charater.
Мы можем сделать это настройкой проекта или настройкой для всех новых проектов. Я делаю это как настройка для всех новых проектов, для этого в выпадающем списке Scheme выбираю значение Default IDE.
Чтобы видеть табуляцию и пробелы в открытом файле заходим все в те же настройки, выбираем Editor -> General -> Appearance ставим галочку напротив Show whitespace.
Защита от перезаписи
Данная настройка полезна для проектов без Git и в любых проектах, где может оказаться, что над одним и тем же файлом работаете не вы одни.
PhpStorm может проверять не изменился ли файл на сервере. Открываем настройки Build, Excution, Deployment -> Deployment -> Options
В опции Warn when uploading over newer file выбираем значение Compare content и ставим галочку напротив пункта Notify of remove changes.
Теперь если мы попытаемся загрузить на сервер файл, который был изменен на сервере, пока мы работали с ним PhpStorm нас предупредит об этом.
При нажатии Merge and upload мы можем сравнить файлы и загрузить файл содержащий изменения, внесённые нами и изменения, которые появились на сервере.
Также рекомендую изменить опцию Upload changed files automatically to the default server на значение On explicit save action (Ctrl+S)
С данной опцией будет происходить автоматическая загрузка файла на сервер при нажатии комбинации клавиш Ctrl + S
PhpStorm загружает на сервер загруженные на локальный компьютер папки
Во время работы PhpStorm я столкнулся с интересной особенностью, созданные в проекте файлы имеют приоритет на удаленными файлами (файлами сервера), что может привести к затиранию папок на сервер. Например если вы перенесли в папку проекта папку, с таким же названием как на сервере. Чтобы избежать подобного поведения заходим в настройки Build, Excution, Deployment -> Deployment -> Options и ставим галочку напротив пункта Skip external changes
Это руководство описывает, как начать развёртывание PHP-приложений с помощью IDE PhpStorm. Ты увидишь, что такое деплой и как просто его настроить в PhpStorm. Деплой или развёртывание — это процесс перемещения кода из песочницы разработчика на реальный сервер.
Мой дорогой друг, при разработке приложений с помощью PhpStorm, скорее всего, ты следуешь одному из следующих путей:
- Веб-сервер установлен на локальном компьютере. Исходники PhpStorm проекта находятся в корневом каталоге документов сервера. По сути, разработка происходит на веб-сервере.
- Веб-сервер установлен на локальном компьютере. Исходники PhpStorm проекта находятся не в корневом каталоге документов сервера, а в любом другом. Разработка происходит в PhpStorm, файлы копируются в корневой каталог документов сервера для тестирования.
- Веб-сервер установлен на другом компьютере. Исходники PhpStorm проекта хранятся на локальном компьютере. Разработка происходит в PhpStorm, файлы копируются в корневой каталог документов на сервер посредством FTP, SFTP, FTPS или с помощью общего сетевого ресурса.
Обрати внимание, другие конфигурации тоже возможны, но это самые распространённые.
В любом возможном варианте PhpStorm отличает проект от сервера. Для работы с сервером (например, для копирования или синхронизации файлов) должен быть настроен сервер развёртывания. Давай рассмотрим этот процесс подробнее, шаг за шагом.
1. Необходимые условия
Перед тем как произвести какой-либо из видов развёртывания, убедись, что соединение между локальным компьютером и удалённым хостом доступно с помощью FTP, SFTP, FTPS или имеется доступ к общим файлам.
Все действия, описанные здесь, были воспроизведены с корректными ожидаемыми результатами при следующем технологическом окружении:
2. Настройка сервера развёртывания
2.1. Создание сервера развёртывания
Создание сервера развёртывания может быть осуществлено через следующие пункты главного меню IDE: [File → Settings → Build, Execution, Deployment → Deployment] или [Tools → Deployment → Configuration] . При нажатии на кнопку с зелёным плюсиком на панели инструментов можно добавить новый веб-сервер.
Дай серверу имя и выбери его тип. Это может быть любой из следующих:
- FTP — подключение к серверу развёртывания с помощью FTP.
- SFTP — подключение к серверу развёртывания с помощью SFTP.
- FTPS — подключение к серверу развёртывания с помощью FTPS.
- Local or mounted folder (локальная или примонтированная папка) — корневая директория документов сервера развёртывания. Является доступной как локальная папка на компьютере или в виде подсоединённой папки на удалённом компьютере.
- In place (на месте) — проект PhpStorm находится в корневой директории локального веб-сервера.
Нажми кнопку OK , чтобы добавить сервер развёртывания.
Когда сервер развёртывания создаётся и настраивается в каком-либо проекте, то он и детали его подключения становятся глобальными и доступными для любого проекта открытого в PhpStorm, а параметры вкладок Mappings (отображения) и Excluded Paths (исключаемые пути) являются настройками каждого конкретного проекта. Таким образом, несколько проектов могут использовать один и тот же сервер развёртывания без необходимости настройки подключения для каждого из них в отдельности.
2.2. Настройка подключения
Теперь на вкладке Connections (подключения) ты должен указать сведения о соединении. В зависимости от типа сервера, выбранного ранее, эти параметры будут отличаться.
Но один параметр является общим для всех типов соединений — это корневой URL-адрес веб-сервера. Обычно им выступает URL-адрес до корневого каталога документов сервера.
Далее, мой друг, рассмотрим подробно параметры каждого типа соединения.
2.2.1. FTP, FTPS, SFTP
Для FTP, FTPS и SFTP конфигурации соединений более или менее похожи. Ты должен указать имя хоста, порт, корневой путь (путь на удалённом сервере, который будет использоваться в качестве корня) и учётные данные.
Кнопку Advanced options. (расширенные опции) можно использовать для настройки дополнительных параметров подключения. Обычно в этом нет необходимости, но если, например, требуется пассивный режим или ограничение на количество одновременных соединений, то эти параметры могут быть определены.
Используя кнопку Test FTP connection. , ты сможешь проверить корректность введённых ранее параметров. Ниже представлен результат успешной проверки.
2.2.2. Локальная или примонтированная папка
Для локальной или примонтированной папки ты должен указать путь, куда файлы проекта должны быть развёрнуты.
2.2.3. На месте (локальный веб-сервер)
Для подключения данного типа ты должен указать только корневой URL-адрес веб-сервера. Причина этого в том, что корневой каталог документов локального веб-сервера отображается в корне проекта твоей IDE — нет необходимости передавать такие файлы проекта куда-либо.
2.3. Настройка отображений
Самый простой способ — отобразить всю корневую директорию проекта в корневой каталог документов сервера, где структура их папок будет идентична. На скриншоте ниже указано следующее соотношение:
Local Path (локальный путь) | Deployment Path (путь развёртки, например, на FTP сервере) | Web Path (URL-адрес — веб-путь) |
C:\OpenServer\domains\vpawd.lc | / | / |
В зависимости от конфигурации сервера и планировки проекта возможно указать не одно, а несколько отображений на вкладке Mappings . Например, фреймворки Phalcon, Symfony2, Zend FrameWork, Laravel или CakePHP, как правило, используют 2 основные папки:
- application — содержит контроллеры и код приложений;
- public — соответствует корневой директории документов сервера и обычно содержит JavaScript, CSS и т.д.
Такой тип приложений может быть отображён следующим образом:
Local Path (локальный путь) | Deployment Path (путь развёртки, например, на FTP сервере) | Web Path (URL-адрес — веб-путь) |
C:\OpenServer\domains\vpawd.lc\application | /application | |
C:\OpenServer\domains\vpawd.lc\public | /public | / |
На скриншоте выше для каталога application предупреждение показано потому, что не указан Web Path (веб-путь), но для настройки данного типа приложений это нормально. Также стоит отметить, что когда у нескольких папок будут одинаковые соотношения, то применяться будет только первое.
2.4. Установка сервера по умолчанию *
Если ты используешь только один сервер развёртывания для многих проектов (часто так и бывает), имеет смысл установить его в качестве сервера по умолчанию. В окне Deployment на вкладке Mappings с использованием кнопки Use this server as default можно установить сервер по умолчанию для проекта.
2.5. Настройка исключаемых путей *
Иногда имеются пути, которые не должны быть скачаны с сервера в локальный проект или загружены на сервер при выполнении деплоя, например, директория с лог-файлами или директория, содержащая кэшированные данные шаблонов Smarty. Эти пути могут быть легко исключены на вкладке Excluded Paths .
3. Исследование сервера
После настройки сервера развёртывания ты можешь просматривать удалённый сервер с помощью пункта главного меню [Tools → Deployment → Browse Remote Host] . Он откроет новое окно инструментов в PhpStorm, в нём можно работать с удалёнными каталогами и файлами.
В приведённом выше скриншоте некоторые файлы и директории будут отображаться на зелёном фоне — они имеют право находиться в твоём локальном проекте. Это выделение зелёным цветом основано на правилах сопоставления из вкладки Mappings , созданных ранее.
Ты можешь перемещаться между соответствующими локальными и удалёнными каталогами с помощью сочетания клавиш Alt + F1 .
4. Деплой файлов на сервер
Деплой файлов на сервер может быть выполнен несколькими способами. Проще всего выбрать проект, папку или отдельный файл в панели Project . Затем с помощью опции контекстного меню [Deployment → Upload to [server name]] или [Deployment → Upload to. ] (если сервер по умолчанию не установлен) загрузить выделение на удалённый сервер. Также ты можешь использовать главное меню [Tools → Deployment → . ] для выбора необходимой операции развёртывания.
Ты сможешь видеть прогресс в окне File Transfer , которое откроется само.
Скачивание файлов работает аналогичным образом. Ты можешь использовать контекстное меню в окне инструмента Remote Host и опцию загрузки.
5. Перетаскивание файлов между сервером и проектом *
PhpStorm поддерживает режим перетаскивания — операции копирования и перемещения данных между панелью Project и окном инструмента Remote Host . Для использования указанного режима открой окно инструмента Remote Host с помощью главного меню [Tools → Deployment → Browse Remote Host] . Файлы и папки могут быть скопированы или перемещены от и к серверу развёртывания с помощью перетаскивания. Эта функция ведёт себя подобно функции в проводнике на твоём компьютере: по умолчанию элемент будет перемещён. Если при перетаскивании удерживается клавиша Ctrl , то файл будет скопирован. На скриншоте ниже происходит копирование файла favicon.ico из проекта на удалённый сервер.
Перетягивание удобно использовать для изучения папки на сервере, не имеющей правил сопоставления, указываемых на вкладке Mappings .
Более углубленный материал о синхронизации и деплое приложений ты можешь найти в следующей статье: Синхронизация изменений и автоматическая загрузка на сервер развёртывания в PhpStorm.
Пункт является опциональным при изучении руководства: Деплой PHP-приложений с помощью PhpStorm.
Читайте также: