Php intelephense для чего

VS Code как IDE для PHP

Visual Studio Code при помощи встроенных возможностей, сторнних расширений и библиотек PHP можно превратить в полноценную IDE для разработки на PHP.

Visual Studio Code при помощи встроенных возможностей, сторонних расширений и библиотек PHP можно превратить в полноценную IDE для разработки на PHP.

В статье рассмотрен лишь тот набор расширений/модулей, с которым работает автор статьи, на самом деле расширений много и у рассмотренных расширений есть аналоги.

  • удобство написания кода:
    • автодополнение, статический анализ и навигация по коду
    • стандартизация оформления кода

    #Написание кода

    • автодополнение кода (даже юзерского)
    • навигацию по коду (горячими клавишами или через контекстное меню)
    • статический анализ и подсветку некорретного кода, на основании анализа

    Все это на основании той версии 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 кода. Можно построчно выполнить файл, просмотреть стек вызовов и значения переменных. При этом запускать можно как отдельный файл, так и целый сайт о_О.

    # для текущей версии 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 и запишем в него следующее:

    Здесь происходит создание двух заданий:

    • Run unit tests all — запуск тестирования всей директории
    • Run unit test current file — запуск текущего открытого файла на тестирование

    Теперь идем в Terminal => Run Task , затем из появившего списка выбираем нужное задание.

    #Итог

    Такими не сложными действиями мы превратили редактор кода «»Visual Studio Code в полноценную IDE для разработки проектов на PHP»». Не все инструменты рассмотрены полностью, некоторые лишь очень поверхностно, но дальнейшую тонкую настройку оставляю в качестве домашнего задания 🙂

    В телеграм канале DevOps от первого лица можно оставить комментарий или почитать интересные истории из практики DevOps

    Источник

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

    Vscode

    Так может выглядеть интерфейс редактора после установки расширений

    Основные возможности

    • отладчик кода
    • встроенный терминал
    • удобные инструменты для работы с Git
    • подсветка синтаксиса для множества популярных языков и файловых форматов
    • удобная навигация
    • встроенный предпросмотр Markdown
    • умное автодополнение
    • встроенный пакетный менеджер

    VS Code имеет большое количество расширений для разработчика. Для установки нового пакета зайдите во вкладку «Extensions», введите название пакета в строке поиска, нажмите кнопку «Install».

    extension list

    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 > 

    vscode-phpcs

    Semicolon Insertion Shortcut

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

    semicolon-shortcut

    Extra

    Список расширений, которые могут быть использованы не только для PHP:

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

    gitlens

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

    rainbow

    • Settings Sync — плагин, позволяющий синхронизировать настройки редактора между разными компьютерами. В качестве облачного хранилища используется Github Gists. Все настройки можно скачать, указав нужный файл синхронизации.
    • Fira Code — моноширинный шрифт, в котором используются лигатуры (объединяет несколько символов в один) для общих комбинаций символов в программировании. Визуальная надстройка для более удобного чтения кода.

    Источник

    Читайте также:  Java file version number
Оцените статью