У меня есть объект "Пользователь", который имеет атрибуты, доступность которых объявляется защищенными, но которые могут быть установлены непосредственно с помощью магического метода __set.
Теперь PhpStorm сигнализирует об этой кажущейся несогласованности с большим красным столбцом с правой стороны.
Можно ли объяснить PhpStorm, что происходит, поэтому это больше не отображается как ошибка?
EDIT:
Я использую PhpStorm 2.1.4
В порядке, вот какой-то код, который иллюстрирует проблему (вместе с предлагаемым обходным путем от Алексея, который, к сожалению, не делает этого для меня):
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);
и вывод:
string 'c1' (length=2)
string 'c2' (length=2)
и , как выглядит, как в PhpStorm:
моя цель:
либо PhpStorm "понимают" дизайн, либо просто избавляются от этих раздражающих красных знаков повсюду, не ухудшая при этом обнаружение ошибок, кроме этой проблемы.