Есть ли способ избежать статического аксессора parent::
в классах PHP, или это одно из тех случаев, когда используется @SuppressWarnings(StaticAccess)
?PHPMD избежать статического доступа к родительскому
На тех же строках похоже, что это StaticAccess
Предупреждение появляется в подозрительных местах. Обработка исключений, например - когда я throw new Exception(...)
, PHPMD жалуется на статический доступ. Но ... на самом деле нет другого способа сделать это (что я нашел), поэтому у меня есть больше предупреждающих супрессоров, чем хотелось бы. Это нормально?
EDIT
В соответствии с просьбой, вот пример - это довольно просто:
class aaa {
private $someReasonForAnException = true;
public function __construct() {
echo 'AAA<br>';
if ($this->someReasonForAnException) {
throw new Exception("Something happened that's worth noticing!");
}
}
}
class bbb extends aaa {
public function __construct() {
echo 'BBB<br>';
parent::__construct();
}
}
$BBB = new bbb();
PHPMD сообщит две ошибки с выше: в StaticAccess
ошибки на Exception
, и в StaticAccess
ошибки на вызов parent::__construct()
.
Чтобы избежать этого, мне нужно обозначить оба класса с @SuppressWarnings
, который кажется неуклюжим, а также не будет показывать «реальные» проблемы статического доступа.
Отправьте свой код, пожалуйста ... –
@HenriqueBarcelos - спасибо, что посмотрели, есть пример. – Ben
Вы не делаете никаких статических вызовов; Я бы сообщил об этом как об ошибке. –