2016-07-20 1 views
1

Je travaille sur un projet PHP 7 avec PhpStorm 10.0.2.Pourquoi PhpStorm signale-t-il une erreur "Le type d'argument ne correspond pas"?

Chaque fois que je déclare un PHPDoc @param pour un paramètre de fonction qui est de type laissant entendre pour un type scalaire (string, int, ...) Je reçois cet avertissement:

Type d'argument ne correspond pas à

Voici quelques exemples de code qui PhpStorm se plaint:

class HostConfig 
{ 
    /** 
    * @var string 
    */ 
    private $hostname; 
    /** 
    * @var string 
    */ 
    private $domainname; 

    /** 
    * Creates a new instance of hte HostConfig model. 
    * 
    * @param string $hostname A host name (e.g. "dev", "int", "feature-xy") 
    * @param string $domainname A domain name (e.g. "example.com") 
    * 
    * @throws \InvalidArgumentException If the given $hostname is empty 
    * @throws \InvalidArgumentException If the given $domainname is empty 
    */ 
    public function __construct(string $hostname, string $domainname) 
    { 
     if (strlen(trim($hostname)) === 0) { 
      throw new \InvalidArgumentException("The host name cannot be empty"); 
     } 

     if (strlen(trim($domainname)) === 0) { 
      throw new \InvalidArgumentException("The domain name cannot be empty"); 
     } 

     $this->hostname = $hostname; 
     $this->domainname = $domainname; 
    } 
} 

Et une capture d'écran de PhpStorm affichant le douteux « type d'argument ne correspond pas à » -hint dans le PHPDoc pour un constructeur qui a deux paramètres de chaîne fortement typés:

Screenshot of PhpStorm displaying an "Argument type does not match" hint for a string function parameter that has type hinting

Quelqu'un sait-il si je fais quelque chose de mal ou si c'est juste un bug dans PhpStorm?

+0

J'utilise PHPStorm tous les jours depuis quelques années et malheureusement, il est criblé de bugs irritants comme celui-ci entre les versions. – Marty

+0

@Marty Pourquoi continuez-vous à l'utiliser? Pourquoi n'avez-vous pas changé? – BeetleJuice

+0

@BeetleJuice Pour quoi? Rien d'autre n'a le même support PHPDoc. – Marty

Répondre

4

Votre version de PHPStorm a été publiée seulement 7 jours après PHP 7, donc sa prise en charge des nouvelles fonctionnalités de la langue (y compris les indicateurs de type scalaire) n'est pas excellente. Vous rencontrez un bug IDE. Votre problème est probably this one qui est corrigé avec PHPStorm 10.0.3