Как настроить VS Code для разработки на PHP

Так может выглядеть интерфейс редактора после установки расширений
- Основные возможности
- EditorConfig for VS Code
- PHP Intelephense
- PHP Debug
- PHP Sniffer
- Semicolon Insertion Shortcut
- Extra
Основные возможности
- отладчик кода
- встроенный терминал
- удобные инструменты для работы с Git
- подсветка синтаксиса для множества популярных языков и файловых форматов
- удобная навигация
- встроенный предпросмотр Markdown
- умное автодополнение
- встроенный пакетный менеджер
VS Code имеет большое количество расширений для разработчика. Для установки нового пакета зайдите во вкладку «Extensions», введите название пакета в строке поиска, нажмите кнопку «Install».

EditorConfig for VS Code
EditorConfig — это конфигурационный файл и набор расширений к большому количеству редакторов кода. Он подхватывает настройки из файла .editorconfig , который, как правило, размещается в корне проекта. Расширение автоматически настроит отступы и перевод строк единообразно для всех разработчиков, использующих его. PHP код чаще всего выполняется на *nix системах, поэтому необходимо использовать стандарт.
Ниже приводится пример файла .editorconfig , который используется в Laravel:
root = true # Глобальные настройки, которые будут записаны для всех файлов. [*] charset = utf-8 # На Unix системах используется lf для перевода строки. # Это также требование стандарта PSR. end_of_line = lf insert_final_newline = true indent_style = space indent_size = 4 trim_trailing_whitespace = true # Можно задать индивидуальные настройки как для типов файлов, # так и отдельных файлов по имени. [*.md] trim_trailing_whitespace = false [*. ] indent_size = 2 [ ] indent_style = space indent_size = 2 [lib/**.js] indent_style = space indent_size = 2
PHP Intelephense
В редакторе уже есть поддержка синтаксиса и подсказок стандартных функций языка. Но без специального дополнения редактор не будет подсказывать пользовательские функции из других частей проекта. Поэтому для поддержки автодополнения, анализа кода, перехода к месту, где создана функция/класс/переменная (с помощью шортката Alt+Click ), используется дополнение PHP Intelephense
Чтобы подсказки не дублировались необходимо отключить встроенную в редактор поддержку кода для PHP: Extensions -> Search @builtin php -> PHP Language Features -> Disable
PHP Debug
При разработке может возникнуть ситуация, когда простых функций отладки и логирования становится недостаточно. Тогда может помочь специальный инструмент — Дебаггер. Для PHP есть расширение xdebug, которое позволяет расставить точки останова и посмотреть окружение в предполагаемом месте ошибки, выполняя код поэтапно либо до следующей точки.
Чтобы воспользоваться PHP Debug, необходимо установить сам XDebug, без него расширение для редактора работать не будет. Установив расширение, необходимо добавить конфигурацию для PHP в разделе Debug . После выбора языка в корне проекта будет создан файл .vscode/launch.json с задачами для Дебаггера. Расширение создаст файл со стандартными параметрами.
Для того, чтобы XDebug общался с нашим дебаггером, необходимо добавить настройки в файл конфигурации php. Чтобы найти этот файл выполните в терминале команду php —ini или запустите веб-сервер с кодом phpinfo() .
В Linux PHP подгружает не только основной файл, но и файл из этой директории. Например, на Ubuntu путь к директории конфигурационных файлов для PHP может быть таким — /etc/php/7.3/cli/conf.d/ . В ней создаём файл с необходимыми правами (требуются root права):
$ sudo touch /etc/php/7.3/cli/conf.d/99-local.ini $ sudo chmod 777 /etc/php/7.3/cli/conf.d/99-local.ini
xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 ; Порт, который мы указали в launch.json xdebug.idekey=code xdebug.remote_autostart=1
Это настройки для локальной разработки, когда проект разрабатывается и запускается на одном компьютере, например на вашей рабочей машине
PHP Sniffer
В языках программирования есть понятие стиль кодирования. Но не все разработчики знают об этом. Программа, которая отвечает за проверку на соответствие стандартам, называется линтер. В PHP приняты стандарты под названием PSR. Нас интересуют стандарты PSR-1 и PSR-12. Именно эти два стандарта касаются кодирования и правил оформления.
В PHP в качестве линтера используется PHP_CodeSniffer. Для его работы необходимо установить глобально сам линтер composer global require «squizlabs/php_codesniffer=*» и расширение PHP Sniffer.
Проверьте, что линтер установился:
$ phpcs --version PHP_CodeSniffer version 3.4.2 (stable ) by Squiz (https://www.squiz.net )
Выполнить проверку кода в терминале можно с помощью команды phpcs , явно указав стандарт, который мы хотим использовать, и путь для проверки:
$ phpcs --standard =PSR12 dirname >

Semicolon Insertion Shortcut
PHP требует разделять инструкции с помощью точки запятой. Расширение Semicolon Insertion Shortcut добавляет необходимый символ в конец строки с помощью шортката. Если при нажатии [Ctrl] + ; символ не вставляется, то необходимо проверить список горячих клавиш и при необходимости назначить комбинацию вручную: File -> Preferences -> Keyboard Shortcuts

Extra
Список расширений, которые могут быть использованы не только для PHP:
- GitLens — в VS Code уже встроена поддержка Git. Но когда базовых возможностей становится недостаточно, на помощь может придти Gitlens. Например, одна из полезных фич — git blame на текущей строке.

- Indent Rainbow — разноцветные отступы в коде. Подсвечивает некорректный отступ. Можно вместо радуги установить оттенки серого.

- Settings Sync — плагин, позволяющий синхронизировать настройки редактора между разными компьютерами. В качестве облачного хранилища используется Github Gists. Все настройки можно скачать, указав нужный файл синхронизации.
- Fira Code — моноширинный шрифт, в котором используются лигатуры (объединяет несколько символов в один) для общих комбинаций символов в программировании. Визуальная надстройка для более удобного чтения кода.
VS Code как IDE для PHP
Visual Studio Code при помощи встроенных возможностей, сторнних расширений и библиотек PHP можно превратить в полноценную IDE для разработки на PHP.
Visual Studio Code при помощи встроенных возможностей, сторонних расширений и библиотек PHP можно превратить в полноценную IDE для разработки на PHP.
В статье рассмотрен лишь тот набор расширений/модулей, с которым работает автор статьи, на самом деле расширений много и у рассмотренных расширений есть аналоги.
Требования к IDE:
- удобство написания кода:
- автодополнение, статический анализ и навигация по коду
- стандартизация оформления кода
#Написание кода
- автодополнение кода (даже юзерского)
- навигацию по коду (горячими клавишами или через контекстное меню)
- статический анализ и подсветку некорретного кода, на основании анализа
Все это на основании той версии PHP которая будет выбрана в настройках расширения. Можно установить так:
Есть настройки, но пользоваться можно сразу после установки.
Расширение PHP Namespace Resolver используется для удобного импорта namespace (причем с сортировкой) и создания новых пространств имен из файлов. Настроек не много. Мелочь, но +5 к удобству.
Расширение PHP DocBlocker предоставляет функционал для удобного и автоматического комментирования DocBlock.
Расширение phpcs предоставляет возможность оформлять код в соответсвии с выбранным стандартом. Неверно составленный код будет подсвечиваться.
Для настройки phpcs нужно установить расширение для VS Code (по ссылке выше) и пакет php_codesniffer для Composer:
composer require --dev squizlabs/php_codesnifferЗатем обзательно в настройках расширения нужно выбрать стандарт ( PEAR , PHPCS , PSR1 , PSR2 , PSR12 , Squiz , Zend ), для этого в конфиге необходимо указать ключ:
Intelephense подскажет какие классы/функции не подключены к файлу, Namespace Resolver позволит их импортировать в пару кликов мыши, а DocBlock поможет прокомментировать свой код чтобы Intelephense мог в любом месте показать подсказку по этому коду. phpcs позволит составить код в одном из выбранных стандартов.
Каждое расширение можно настроить глобально или для текущего проекта. Настройки для текущего проекта будут храниться в директории .vscode/settings.json относительно корня проекта.
#Статический анализ
Статических анализаторов для php, есть несколько (ссылка на почитать), я использую phpstan, причина одна — с него начал, его и дальше использую.
В минимальном варианте достаточно установить пакет phpstan/phpstan через Composer:
composer require --dev phpstan/phpstanИ через терминал можно запускать так ([[https://phpstan.org/user-guide/command-line-usage ссылка на документацию]]):
vendor/bin/phpstan analyse -l 9 srcА для отображения результатов работы статического анализатора phpstan в интерфейсе VS Code, нужно установить расширение phpstan, создать конфиг phpstan.neon (ссылка):
parameters: level: 6 paths: - srcИ в конфиг .vscode/settings.json добавить путь до phpstan:
#Отладка
Расширение PHP Debug в совокупности с модулем PHP xdebug позволяют производить отладку PHP кода. Можно построчно выполнить файл, просмотреть стек вызовов и значения переменных. При этом запускать можно как отдельный файл, так и целый сайт о_О.
Установим модуль xdebug :
# для текущей версии php apt install php-xdebug # для конкретной версии php apt install php7.3-xdebugТеперь открываем файл /etc/php/VERSION/mods-available/xdebug.ini :
zend_extension=xdebug.so xdebug.remote_handler = dbgp xdebug.client_host = localhost xdebug.client_port = 9005 xdebug.mode=coverage,debug xdebug.start_with_request = yesТеперь в корне проекта создаем .vscode/launch.json со следующим содержимым:
< "version": "0.2.0", "configurations": [ < "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9005, >, < "name": "Launch currently open script", "type": "php", "request": "launch", "program": "$", "cwd": "$", "port": 0, "runtimeArgs": [ "-dxdebug.start_with_request=yes" ], "env": < "XDEBUG_MODE": "debug,develop", "XDEBUG_CONFIG": "client_port=$" > > ] >Здесь создается 2 конфигурации:
- Listen for Xdebug — прослушивать xdebug. Если в текущем проекте, в каком-то файле поставить брекпоинт и запустить файл на исполнение (((из консоли или из браузера через локальный веб-сервер))) тогда отладчик остановится в скрипте на брекпоинте.
- Launch currently open script — запустить текущий файл на исполнение и отладку.
Значение ключа port из конфигурации Listen for Xdebug должно быть точно таким же как и в конфиге модуля PHP xdebug xdebug.client_port .
Вообще-то расширение PHP Debug по умолчанию предусматривает еще один конфиг Launch Built-in web server для запуска встроенного веб-сервера, но в моем случае это не нужно, так как использую локальный LAMP, а теперь вообще все в Docker и такая отладка в Docker.
#Тестирование
Расширения для минимизации действий по запуску тестиров кода показались мне избыточны, потому что Visual Studio Code предоставляет функционал custom tasks, при помощи которого можно все это организовать.
Предположим что проект использует composer и PHPUnit (хотя вовсе необзяательно), а тесты находятся в директории tests .
Создадим файл относительно корня проекта .vscode/tasks.json и запишем в него следующее:
< "version": "2.0.0", "tasks": [ < "label": "Run unit tests all", "type": "shell", "command": "vendor/bin/phpunit", "args": [ "--colors=always", "--coverage-html", "coverage-report-html", "--bootstrap", "tests/bootstrap.php", "tests/" ], "group": "test", "presentation": < "reveal": "always", "panel": "new" >>, < "label": "Run unit test current file", "type": "shell", "command": "vendor/bin/phpunit", "args": [ "--colors=always", "--coverage-html", "coverage-report-html", "--bootstrap", "tests/bootstrap.php", "$" ], "group": "test", "presentation": < "reveal": "always", "panel": "new" >> ] >Здесь происходит создание двух заданий:
- Run unit tests all — запуск тестирования всей директории
- Run unit test current file — запуск текущего открытого файла на тестирование
Теперь идем в Terminal => Run Task , затем из появившего списка выбираем нужное задание.
#Итог
Такими не сложными действиями мы превратили редактор кода «»Visual Studio Code в полноценную IDE для разработки проектов на PHP»». Не все инструменты рассмотрены полностью, некоторые лишь очень поверхностно, но дальнейшую тонкую настройку оставляю в качестве домашнего задания 🙂
В телеграм канале DevOps от первого лица можно оставить комментарий или почитать интересные истории из практики DevOps
Отладка php в Visual Studio Code (Xdebug, Windows)
В некоторых случаях может возникнуть необходимость отладки приложений на php. Visual Studio code предоставляет такую возможность при условии установки дополнительного расширения PHP Debug (marketplace, github).
Установка PHP Debug
Для установки нажмите Ctrl+p и введите команду ext install php-debug . Нажмите на кнопку «включить», в итоге вы должны увидеть примерно следующее:

Установка и настройка Xdebug
PHP Debug использует для отладки Xdebug. Для настройки Xdebug пройдите по ссылке. Предполагается, что на локальной машине уже установлен и настроен сервер apache. Здесь и далее действия указаны для Windows. Можно создать файл, например, test.php содержащий:
Открыть его в браузере и скопировать содержимое страницы в диалоговое окно. Другой способ:
- win+R ;
- cmd + Enter ;
- php -i > phpinfo.text ;
- открыть любым удобным редактором phpinfo.txt и все его содержимое вставить в диалоговое окно.

Далее следуйте инструкциям по установке: скачайте .dll и не изменяя его имени скопируйте его в указанную папку, дополните файл php.ini указанной в руководстве строкой.
Кроме этого, добавьте нижеследующие строки. Итоговое добавление будет примерно таким:
[XDebug] zend_extension = C:\xampp\php\ext\php_xdebug-2.4.1-5.6-vc11.dll xdebug.remote_enable=1 xdebug.remote_host=127.0.0.2 xdebug.remote_port=9000 xdebug.remote_autostart=on xdebug.remote_handler=dbgp xdebug.profiler_enable=1 xdebug.profiler_output_dir="C:\xampp\tmp" xdebug.remote_log ="C:\xampp\tmp\xdebug.log"Как вы уже, возможно догадались, в данном примере на локальной машине установлен XAMPP.
Обратите внимание на строку xdebug.remote_host=127.0.0.2 . По умолчанию Xdebug «слушает» порт 127.0.0.1. Укажите здесь, адрес отлаживаемого сайта.
Примечание: С версией Xdebug 2.5 и выше Visual Studio code не работает. Поэтому выбирайте соответствующий вашей версии php файл *.dll.
Настройка Visual Studio code
Вызовите панель отладки (1) и нажмите на иконку с маленькой шестеренкой (2).

В появившемся списке выберите PHP . Автоматически сформируется файл launch.json .
< "version": "0.2.0", "configurations": [ < "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000 >, < "name": "Launch currently open script", "type": "php", "request": "launch", "program": "$", "cwd": "$", "port": 9000 > ] >Настройка PHP Debug на этом окончена.
Отладка php в Visual Studio code
Откройте в браузере ваше приложение\сайт. Откройте папку с приложением в Visual Studio code. Установите в нужных файлах и строках точки остановки. Откройте панель отладки и выберите для запуска отладки команду Listen for Xdebug (1). Нажмите кнопку запуска (2).

Обновите страницу в браузере и наслаждайтесь.
Как настроить форматирование php кода в VS Code (WordPress Coding Standards)
Visual Studio Code — это отличный современный бесплатный редактор кода, который отлично подходит для разработки приложений на JavaScript. В нем встроена поддержка JavaScript IntelliSense, отладка, форматирование и многие другие продвинутые функции языка. «Я пришел сюда ради PHP» — вы можете подумать. Но, на самом деле Visual Studio Code — это не только о JavaScript. Фактически, с небольшими настройками, VS Code также может предоставить отличную поддержку для многих других програмных языков или фреймворков, включая PHP и WordPress. Однако, его пока недостаточно приняли профессиональные разработчики PHP. Mногие из них предпочитают использовать платные IDE, как например PhpStorm. (в этом ничего плохого нет). Помимо того, что Visual Studio Code бесплатен, другим его большим преимуществом является то, что это программное обеспечение очень легкoe и в то же время легко настраиваемое благодаря тысячам расширений VS Code, созданных сообществом. Это означает, что с небольшим количеством терпения и настройками, вы можете сделать VS Code вашим лучшим другом в разработке программного обеспечения.
По умолчанию Visual Studio Code предоставляет базовые функции для разработки на PHP, такие как подсветка синтаксиса, сопоставление скобок, интеллектуальное автодополнение, однако вы скоро заметите, что он далек от совершенства. Как разработчик тем WordPress, я долгое время боролся с фактом, что не мог правильно отформатировать PHP-код в WordPress. Я буквально попробовал все расширения для VSC, однако не смог найти ни одного, который делал бы то, что мне нужно — правильно отформатироват PHP-код в соответствии с кодексом WordPress. Например, популярное расширение PHP Formatter для VSC форматирует открывающую скобку функции на новой строке:
Вышеуказанный вывод oчевидно неверен. Как вы уже догадались, открывающая скобка должна оставаться на той же линии:
Это может свести с ума разработчика! Нет ничего хуже в программировании, чем сломанный форматтер кода. Есть даже ветка Stackoverflow об этом безумии: VScode, как форматировать скобки в той же строке (PHP). Хотя предоставленный ответ устранил проблему форматирования открытых скобок, кода все еще был далек от правильного форматирования. Например, по стандартам кодирования WordPress, вам необходимо ставить пробел с обеих сторон переменной в функциональных круглых скобках
Но ничего подобного не происходило после «форматирования кода».
Фактически, результат выглядел больше как это:
function test($wp_customize)
Я уже собирался сдаться и подумал удалить все расширения для форматирования PHP и продолжить вручную форматировать каждую строку кода, которую пишу, когда наткнулся на статью, которая буквально изменила мою программистскую жизнь: Как настроить стандарты кодирования WordPress в Visual Studio Code. Это занимает некоторое время для установки и настройки, но это абсолютно стоит того. В конце этого руководства с помощью простой комбинации клавиш (Shift + Alt + F) вы сможете форматировать PHP-код как профессионал, и у вас также будет опция PHP Sniffer, инструмент для диагностики языка, чтобы проверить соответствие требованиям разработки WordPress. Теперь достаточно говорить, давайте улучшим наш код! Установите PHP Code Sniffer
Чтобы правильно форматировать PHP-код в Visual Studio Code, вам сначала нужно установить PHP Code Sniffer на свой компьютер. Самый простой способ установить его — с помощью Composer. Вы можете скачать и установить Composer для Windows здесь. После этого в командной строке введите:
composer require --dev squizlabs/php_codesnifferВы также можете установить его глобально, выполнив следующую команду:
composer global require "squizlabs/php_codesniffer=*"Затем вы можете проверить, установлен ли phpcs, выполнив следующую команду в командной строке:
phpcs -iКоманда выведет список стандартов кодирования по умолчанию. Чтобы добавить стандарты кодирования WordPress, вы можете установить их через Composer:
composer require --dev wp-coding-standards/wpcs composer require --dev dealerdirect/phpcodesniffer-composer-installerВторая команда должна автоматически связать стандарты кодирования WordPress с phpcs, но вам также может потребоваться сделать это вручную. Найдите папку wpcs и выполните следующую команду. Замените на правильное имя профиля:
C:\Users\\AppData\Roaming\Composer\vendor\bin\phpcs --config-set installed_paths C:\Users\\wpcsТеперь, когда вы снова выполняете команду phpcs -i , вам надо увидеть стандарты кодирования WordPress в списке установленных стандартов кодирования.
Переменные окружения (Environment Variables
Если вы используете Windows, вам следует убедиться, что php sniffer был добавлен в ваш список переменных окружения. В меню поиска введите «настройки», а затем в строке поиска настроек введите «env», затем нажмите «изменить системные переменные окружения» => переменные окружения. В разделе системных переменных дважды щелкните на Path и добавьте запись о php sniffer, если ее нет. Это должно выглядеть примерно так:

Файл конфигурации Code Sniffer
Вам нужно проверить, если файл CodeSniffer.conf находиться в папке squizlabs/php_codesniffer. Если этого файла нет, создайте его и добавьте путь к стандартам кодирования WordPress:
'C:\\Users\\\\wpcs' ) ?>Интегрирование стандарты кодирования WordPress в Visual Studio Code
Наконец, нам нужно установить расширение VSC, которое работает с PHP Sniffer: PHP Sniffer & Beautifier. Это расширение работает как снимок и форматировщик, и вы можете выбрать, хотите ли вы использовать снимок или нет. Вот конфигурация, которую я использую. Перейдите в Файл => Параметры => Настройки => Расширения => Редактировать в Settings.json и вставьте следующие параметры:
< "phpsab.snifferEnable" : false, "phpsab.autoRulesetSearch": false, "phpsab.executablePathCBF": "C:\\Users\\\\AppData\\Roaming\\Composer\\vendor\\squizlabs\\php_codesniffer\\bin\\phpcbf.bat", "phpsab.executablePathCS": "C:\\Users\\\\AppData\\Roaming\\Composer\\vendor\\squizlabs\\php_codesniffer\\bin\\phpcs.bat", "[php]": < "editor.defaultFormatter": "valeryanm.vscode-phpsab" >, "extensions.ignoreRecommendations": false, "phpsab.snifferShowSources": true, "phpsab.standard": "WordPress", "phpsab.allowedAutoRulesets": [ ".phpcs.xml", ".phpcs.xml.dist", "phpcs.xml", "phpcs.xml.dist", "phpcs.ruleset.xml", "ruleset.xml" ], "files.autoSave": "afterDelay", "beautify.config": "" >Не забудьте заменить URL-адреса путей к исполняемым файлам на свои. Теперь, если все прошло хорошо, когда вы перезагрузите VSC, щелкните правой кнопкой мыши любой файл php и выберите «Форматировать документ», это, наконец, должно воздать вашему коду ту справедливость, которую он заслуживает.
Совместимость с PHP
Таким образом, вы сможете установить в php-сниффер как можно больше дополнительных стандартов кодирования. Например, если вы хотите обеспечить совместимость с PHP 5, вы можете дополнительно добавить php compatibility в качестве стандарта кодирования. Как только вы запустите анализатор PHP в Visual Studio Code, он автоматически проверит ваш код на наличие проблем совместимости и исправит их, чтобы ваш код был совместим с устаревшими серверами. Все, что вам нужно сделать, это загрузить и извлечь этот пакет и добавить его в качестве стандартов в файл конфигурации php sniffer, разделив запятой. В противном случае последний добавленный вами файл переопределит предыдущие:
phpcs --config-set installed_paths C:\Users\\wpcs, C:\Users\\PHPCompatibilityТеперь надо проверить если данные в файл конфигурации были успешно добавлены. Если вы не уверены, где находится файл конфигурации PHP Sniffer, выполните следующую команду:
phpcs --config-showНаконец, выполните тест совместимости, добавив это в командную строку:
phpcs -p . --standard=PHPCompatibility --extensions=php --runtime-set testVersion 5.6Этот код будет проверять все файлы PHP в проекте на совместимость с PHP 5.6. Для полного списка опций проверьте официальную документацию.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Свежие записи
- Лучшие бесплатные темы WordPress для блогa в 2024
- Самые лучшие бесплатные темы для цифрового маркетинга WordPress 2024
- Самые лучшие бесплатные темы для новостных сайтов WordPress 2024
- Как переключаться между несколькими версиями PHP в Ubuntu 22.04
- Как настроить форматирование php кода в VS Code (WordPress Coding Standards)