У меня есть следующий фрагмент кода в php7 .4, чтобы создать дату из другого
$date = clone $regularCourse->getNextCronExecutionDate();
$date->modify('+ 3 days');
$date->setTime($date->format('H'), $date->format('i'), 0, 0);
. Я тестировал его локально и в производственной среде, и раньше он работал нормально. И вдруг начало давать сбой. с ошибкой
DateTime::setTime() expects parameter 1 to be int, string given
, и он терпел неудачу довольно регулярно и предсказуемо, потому что мой часовой дал мне 4000 случаев возникновения события (это задача cron, которая запускается каждую минуту, и часовой показывает мне, что ошибка возникала 60 раз каждый часов за последние дни)
НО!
Теперь, когда я добавил отладку, чтобы отобразить значение, она больше не дает сбоев Код, который я использовал
// Added to debug some courses failing
ob_start();
var_dump($date);
$dumped_message= ob_get_clean();
\Sentry\addBreadcrumb(
new \Sentry\Breadcrumb(
\Sentry\Breadcrumb::LEVEL_INFO,
\Sentry\Breadcrumb::TYPE_DEFAULT,
'error_reporting',
"course Id " . $regularCourse->getId()
)
);
\Sentry\addBreadcrumb(
new \Sentry\Breadcrumb(
\Sentry\Breadcrumb::LEVEL_INFO,
\Sentry\Breadcrumb::TYPE_DEFAULT,
'error_reporting',
$dumped_message
)
);
Я не знаю, вызывает ли var_dump-ing переменную побочный эффект?
поэтому мои вопросы
- когда возникает эта ошибка?
- почему мой код отладки устраняет проблему?