Je travaille avec une configuration simple pour les caractéristiques du fournisseur API. Chaque fournisseur travaille à partir d'un trait et d'une interface, déclarant la fonctionnalité et les fonctions requises, conformément à la documentation de PHP sur les deux déclarations respectives. Mon PhpStorm indexe clairement les fonctions d'interfaces et de traits, mais n'indexe pas les membres variables. Je les ai déclarés publics, protégés ou privés - rien ne semble fonctionner. Ils fonctionnent clairement dans l'environnement PHP7, mais mon PhpStorm pense que je les ai déclarés dynamiquement.PhpStorm: visibilité variable des membres avec la classe, basée sur l'interface et le trait
Fondamentalement, c'est ma configuration.
interface ProviderInterface
{
const TYPE_ELECTRICITY = 'electricity';
const TYPE_GAS = 'gas';
/**
* @param ContainerInterface $container
*
* @return void
*/
function setContainer(ContainerInterface $container);
/**
* @return Client|\SoapClient
*/
function client();
}
trait ProviderTrait
{
/**
* @var string
*/
private $endpoint = '';
public function setContainer($container) {
/** void for demo purposes */
}
}
class Provider implements ProviderInterface
{
use ProviderTrait;
/**
* @var string
*/
private $username;
/**
* @var string
*/
private $password;
/**
* constructor.
*
* @param ContainerInterface $container
*/
final public function __construct(ContainerInterface $container)
{
$this->setContainer($container);
/**
* While $username and $password are declared within this class, the $endpoint is declared in the ProviderTrait. PHP works fine. PhpStorm ignores it and says it is declared "dynamically".
*/
$this->endpoint = $this->container->getParameter('api.endpoint');
$this->username = $this->container->getParameter('api.username');
$this->password = $this->container->getParameter('api.password');
}
J'ai essayé de vider le cache ("Invalider & Restart") mais après un indice de la même chose se produit.
Quelqu'un a eu une idée?
Quelle est votre version IDE? – LazyOne
PhpStorm 01/02/2017 Build # PS-172.3544.41, construit le 2 Août, 2017 JRE: 1.8.0_152-release-915-b6 amd64 machine virtuelle Java: OpenJDK 64 bits serveur VM par JetBrains s.r.o de Windows 10 10.0 – ReSpawN