Подавление ненужных аннотаций @throws, когда new DateTime () никогда не должен выдавать при вызове без аргументов? - PullRequest
0 голосов
/ 07 апреля 2020

Итак, сам вопрос довольно прост, но я хочу обсудить его и узнать мнение других людей по этому поводу.

Насколько я понимаю, конструктор DateTime выдает, когда вы передаете недопустимые аргументы и он не может сделать с ними что-то значимое, но как насчет случая, когда вы ничего не передаете и используете его значения по умолчанию? Похоже, что в этом случае ошибки никогда не будет.

$date = new DateTime();

Проблема в том, что PHPDocs добавляет ненужные @throws, даже если это никогда не будет throw. Было бы безопасно создать какую-нибудь вспомогательную функцию, чтобы избежать ненужных @throws в PHPDocs, которые просто подавили бы это исключение, которое никогда не выдается, и сделали бы код чище? Или есть другой способ элегантного подавления этого?

/**
 * Suppresses exception on current DateTime
 * creation, which is anyway never thrown.
 *
 * @return DateTime
 */
function getCurrentDateTime(): DateTime
{
    try {
        return new DateTime();
    } catch (Exception $e) {}
}

Итак, каков ваш опыт в этом и есть ли у вас аналогичные функции в вашем проекте?

PS: Я понимаю, что есть множество фреймворков и библиотек, таких как Carbon, которые позволяют вам никогда не сталкиваться с подобными проблемами, но мне все еще интересно найти хороший способ их решения без каких-либо сторонних решений:)

...