J'utilise Visual Studio Code pour développer en PHP, et j'ai eu du mal à obtenir du code pour fournir les résultats d'intellisense appropriés. Par exemple, ce test unitaire Codeception nouvellement créé:
<?php
class MyTest extends \Codeception\Test\Unit
{
/**
* @var \UnitTester
*/
protected $tester;
protected function _before()
{
}
protected function _after()
{
}
// tests
public function testSomeFeature()
{
$this->assertFalse(false);
}
}
Quand je tape $this->
Je m'attends à voir assertFalse
, assertTrue
et toutes les autres méthodes fournies par \Codeception\Test\Unit
. Mais ce que j'obtiens, c'est essentiellement tous les éléments qui existent dans le fichier actuel et c'est tout.
Que puis-je faire pour que toutes les méthodes de la classe Unit
s'affichent? J'ai déjà l'extension PHP IntelliSense installée, v2.3.4.
Le noyau Visual Studio Code n'inclut pas les fonctionnalités avancées PHP, juste la mise en évidence de la syntaxe, la complétion de code simple et le linting de code fournis par le binaire PHP tant que vous l'avez) En bref, les fonctionnalités que vous pouvez configurer avec ces directives:
// 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"
Pour toute autre chose, vous devez installer une extension tierce.
Mon choix personnel est PHP Intelephense . En particulier, il prend en charge les annotations docblock, y compris les propriétés magiques:
/**
* @property string $foo
*/
class Bar
{
}
... et types en ligne:
/** @var \Database $db */
$db->connect();
Vous avez également PHP Tools pour étendre Visual Studio Code avec PHP. C'est payant, mais vous obtiendrez IntelliSense, la refactorisation, le débogueur et de nombreuses autres fonctionnalités et support.