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