Ho un oggetto "Utente" con attributi la cui accessibilità è dichiarata protetta ma che può essere impostata direttamente tramite un metodo __set magico.Come comunicare a PhpStorm i dettagli di implementazione? (metodi magici)
segnali Ora PhpStorm questa incongruenza apparente con una grande colonna rossa sul lato destro.
È possibile spiegare a PhpStorm cosa sta succedendo, quindi questo non viene più visualizzato come errore?
EDIT:
Io uso PhpStorm 2.1.4
bene qui è un codice che esemplifica la questione (insieme con la soluzione finora suggerito da Alexey che purtroppo non fa per me):
c.php:
<?php
/**
* @property mixed $a
*/
class c1
{
protected $a;
public function __construct() { $this->a = __CLASS__; }
public function __get($n) { return $this->{$n}; }
}
/**
* @property $a mixed
*/
class c2
{
protected $a;
public function __construct() { $this->a = __CLASS__; }
public function __get($n) { return $this->{$n}; }
}
test.php
<?php
require "c.php";
$c1 = new c1();
var_dump($c1->a);
$c2 = new c2();
var_dump($c2->a);
e l'uscita:
string 'c1' (length=2)
string 'c2' (length=2)
e come appare come in PhpStorm:
il mio obiettivo:
sia avendo PhpStorm "capire" il disegno o semplicemente sbarazzarsi di quei fastidiosi segni rossi ovunque, mentre non compromettere il rilevamento degli errori a parte questo problema.
la soluzione alternativa non cambia che PHPStorm interpreta l'accesso come difettoso. – Raffael
Bene, ho aggiunto un esempio completo. E io sono lo sviluppatore di questi assegni in IDE. Se non funziona per te, vai al nostro tracker e fornisci il codice da riprodurre. –
Questo funziona ora per PHPStorm 3 :) – Raffael