PHP Intellisense в коде Visual Studio - PullRequest
       9

PHP Intellisense в коде Visual Studio

0 голосов
/ 25 августа 2018

Я использую код Visual Studio для разработки на PHP, и у меня возникли некоторые проблемы с получением кода для обеспечения правильных результатов intellisense. Например, этот недавно созданный модульный тест Codeception:

<?php

class MyTest extends \Codeception\Test\Unit
{
    /**
     * @var \UnitTester
     */
    protected $tester;

    protected function _before()
    {
    }

    protected function _after()
    {
    }

    // tests
    public function testSomeFeature()
    {
        $this->assertFalse(false);
    }
}

Когда я наберу $this->, я ожидаю увидеть assertFalse, assertTrue и все другие методы, предоставляемые \Codeception\Test\Unit. Но то, что я получаю, это то, какие элементы существуют в текущем файле, и все.

incomplete intellisense

Что я могу сделать, чтобы получить доступ ко всем методам из класса Unit? У меня уже установлено расширение PHP IntelliSense, v2.3.4.

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

У вас также есть PHP Tools для расширения кода Visual Studio с помощью PHP.Это платно, но вы получите IntelliSense, рефакторинг, отладчик + множество других функций и поддержку.

0 голосов
/ 31 августа 2018

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

// Controls whether the built-in PHP language suggestions are enabled. The support suggests PHP globals and variables.
"php.suggest.basic": true,

// Enable/disable built-in PHP validation.
"php.validate.enable": true,

// Points to the PHP executable.
"php.validate.executablePath": null,

// Whether the linter is run on save or on type.
"php.validate.run": "onSave"

Для всего остального вам нужно установить стороннее расширение.

Мой личный выбор - PHP Intelephense . В частности, он поддерживает аннотации docblock, включая магические свойства:

/**
 * @property string $foo
 */
class Bar
{
}

... и встроенные типы:

/** @var \Database $db */
$db->connect();
...