Я пытаюсь исправить проблему для моего сайта. Он использует третье лицо, которое владеет несколькими службами подписки.
index
На странице отображаются некоторые из этих служб, но это лишь небольшая часть страницы, но при сбое сервера, который подключается к третьей стороне, происходит сбой всего моего веб-сайта. Я использую веб-сервис для получения данных из базы данных и PHP для использования веб-сервиса.
Я думал, что у меня есть правильное исключение, чтобы ловить любые ошибки, поэтому, если веб-служба не работает, это не приводит к сбою моего сайта. Может ли кто-нибудь взглянуть на приведенный ниже код и увидеть какие-либо изменения, которые я мог бы сделать, чтобы предотвратить сбой.
public function getIncomingReservations($outcome="")
{
$html_code = '';
$amount = 0;
$reservationDetails = '';
$reservationTitle = '';
$reservationURL = '';
$reservationDate = '';
$noreservationsToShow = true;
try
{
$reservations = $this->webService->getAllreservations();
if(isset($reservations->Hotel))
{
if(!is_array($reservations->Hotel))
{
$reservations->Hotel = array($reservations->Hotel);
}
$html_code = '<dl>';
foreach($reservations->Hotel as $reservation)
{
if($amount >= WebServicesWidgets::$MAX_incoming_reservations)
{
break;
}
$reservationDetails = $this->webService->getreservationDetails($reservation->HotelId);
if($reservationDetails->haseBusiness === true && $reservationDetails->isValidated === true)
{
$noreservationsToShow = false;
$reservationTitle = $reservationDetails->shortName;
$reservationURL = $this->EWEBSITE_URL . $reservationDetails->HotelId;
$reservationDate = $reservationDetails->startDate;
$html_code .= '<!-- ' . $reservationDetails->HotelCode . ' | ' . $reservation->HotelId . ' -->';
$html_code .= '<dt><a href="'. $reservationURL . '">' . $reservationTitle . '</a></dt>';
$html_code .= '<dd>' . date('F j - g:i A', $reservationDate) . '</dd>';
++$amount;
}
}
$html_code .= '</dl>';
}
else
{
$html_code = WebServicesWidgets::$NO_reservationS;
}
}
catch(Exception $e)
{
$html_code = WebServicesWidgets::$FAIL_MSG;
}
if($noreservationsToShow)
{
$html_code = WebServicesWidgets::$NO_reservationS;
}
if(empty($return)){
echo($html_code);
}
else {
return $html_code;
}
}
Задача ещё не решена.
Других решений пока нет …