PHPStorm PHPDoc, как объявить параметр массива, в котором есть объект DateTime? - PullRequest
0 голосов
/ 29 мая 2018

Итак, у меня есть метод с параметром, ожидающим массив.Например:

private function handler($db_data){
    $formatted_date = $db_data['StartDate']->format('Y-m-d H:i:s');
}

Как видите, этот массив содержит объект DateTime.Проблема в том, что я не знаю, как объявить этот объект DateTime с использованием PHPDoc, поэтому PHPStorm сообщает мне, что метод 'format' не найден.Кто-нибудь знает, как это решить?Не предлагайте подавить это предупреждение :) Спасибо

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Единственное, что я могу придумать (поскольку массивы динамически набираются), это:

/** @var \DateTime $unformatted_date */
$unformatted_date = $db_data['StartDate'];
$formatted_date = $unformatted_date->format('Y-m-d H:i:s');

РЕДАКТИРОВАТЬ

Примечание: не полагайтесьслишком много в вашей IDE.Мой ответ не очень полезен, так как ваше первоначальное утверждение было отлично читаемым, и оно хорошо передает смысл.Phpdoc не собирается повторно проверять ваш массив, поэтому он буквально только для того, чтобы удалить предупреждение, которое выдает вам IDE.Это мешает читабельности кода на мой взгляд.Это зависит от вас, но я бы использовал комментарии, подобные этим, для очень сложных структур данных.Не для кода, который отлично читается и лаконичен.

0 голосов
/ 29 мая 2018

Вы можете сохранить его во временной переменной и добавить туда PHPDoc.Например:

/** @var DateTime $date */
$date = $db_data['StartDate'];

Таким образом PhpStorm должен знать доступные методы.

...