PHP: имя переменной функции (указатель на функцию) вызывается; Как сказать IDE моя функция называется?
В настоящее время я пытаюсь удалить все ошибки и предупреждения, которые у меня есть в моем проекте, инструмент проверки из моего PHPStorm дает мне.
Я встречаю фрагмент, который PHPStorm говорит "Неиспользуемый частный метод _xxx", хотя он фактически используется, но динамически. Вот упрощенный фрагмент:
<?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 или что-то еще, чтобы моя среда была понятна, мой метод действительно используется?
Обратите внимание, что я передаю свой вызов "run", статическую строку, но мы также можем представить следующее:
<?php
$a->run($_POST['whoYouAre']); //$_POST['whoYouAre'] == 'Used'
?>
Спасибо большое!
Ответы
Ответ 1
отметьте используемые методы в phpdoc как @used
Пример
/**
* @uses _iAmUsed()
* @param string $whoAreYou
*/
public function run($whoAreYou)
{
$methodName = '_iAm' . $whoAreYou;
if (method_exists($this, $methodName)) {
$this->$methodName();
}
}
Ответ 2
Добавьте примечание noinspection
выше метода:
/** @noinspection PhpUnusedPrivateMethodInspection */
private function _iAmUsed()
{
//Do Stuff...
}
Или после запуска анализа кода вы можете щелкнуть правой кнопкой мыши любую проверку в окне результатов и выбрать Suppress for statement, чтобы PHPStorm добавила собственно аннотацию. Для получения дополнительной информации см. http://www.jetbrains.com/phpstorm/webhelp/suppressing-inspections.html