В настоящее время я пытаюсь удалить все ошибки и предупреждения, которые у меня есть в моем проекте, инструмент Inspection от моего PHPStorm дает мне.PHP: имя переменной; Как сообщить IDE, что моя функция называется?
Я встречаюсь с фрагментами PHPStorm говорит «Неиспользуемый частный метод _xxx», хотя он фактически используется, но динамически. Вот simplifyed фрагмент:
<?php
class A
{
private function _iAmUsed()
{
//Do Stuff...
}
public function run($whoAreYou)
{
$methodName = '_iAm' . $whoAreYou;
if (method_exists($this, $methodName)) {
$this->$methodName();
}
}
}
$a = new A();
$a->run('Used');
?>
В этом фрагменте PhpStorm скажет мне «Неиспользованные частный метод _iAmUsed» в то время как, на самом деле, он используется ... Как я могу, добавляя PHPDocs или что-то, что бы , чтобы мой IDE понял, что мой метод действительно используется?
Обратите внимание, что я даю моим «запустить» вызов, статическую строку, но мы можем себе представить, также это:
<?php
$a->run($_POST['whoYouAre']); //$_POST['whoYouAre'] == 'Used'
?>
Спасибо большое!
Подобно тому, как FYI, IDE предупреждения там просто, чтобы вы знаете, что-то может быть не так. Удаление всех из них (где они произвольны в любом случае) на самом деле не является достижимой целью. – Machavity
Да, вы не должны уделять слишком много внимания поверхностному анализу IDE (в PHPStorm это действительно не проверка статического кода, а также мало подходит для динамических функций PHP). Просто примените «Игнорировать этот экземпляр» в отчетах, если вы уже проверили, что он работает по назначению. – mario
Одним из «глупых» способов удаления такого предупреждения (из-за вашего динамического использования) является отметка этого метода как 'protected', а не' private'. PhpStorm (как и любая другая PHP IDE здесь) не может обнаружить такое высокодинамичное использование, используя только статическую (и почти статическую) проверку кода (как уже упоминалось выше) – LazyOne