//Service
//Возможная ошибка №1 (ошибка на сервере)
$json = file_get_contents('...');
$result = json_decode($json, true);
//Возможная ошибка №2 ($result - не массив)
$songs = array_filter($result, function() {
...
});
//Возможная ошибка №3 нет элемента с индексом 0
$song = $songs[0];
return $song;
//Controller
try {
$song = $this->partnerService->getSong($singer, $song_name);
} catch (Exception $e) {
return response()->json([
'status' => $e->getStatus(),
'message' => $e->getMessage()
]);
}
return response()->json($song);
//Service
try {
$json = file_get_contents('partner-domain.com/api?singer=' . $singer);
} catch (\Exception $e) {
throw new Exception('Error');
}
$songs = json_decode($json, true);
//Filter songs by given name
$result = array_filter($songs, function($song) use ($song_name) {
return mb_strtolower($song['name'] === mb_strtolower($song_name));
});
return $result[0] ?? null;
//Controller
try {
$song = $this->partnerService->getSong($singer, $song_name);
} catch (Exception $e) {
return response()->json(['status' => 'error']);
}
if ($song === null) {
return response()->json(['status' => 'no data']);
}
return response()->json($song);
protected static $browsers = array(
//'Vivaldi' => 'Vivaldi',
// @reference: https://developers.google.com/chrome/mobile/docs/user-agent
'Chrome' => '\bCrMo\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?',
'Dolfin' => '\bDolfin\b',
'Opera' => 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+$|Coast/[0-9.]+',
'Skyfire' => 'Skyfire',
'Edge' => 'Mobile Safari/[.0-9]* Edge',
'IE' => 'IEMobile|MSIEMobile', // |Trident/[.0-9]+
'Firefox' => 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS',
'Bolt' => 'bolt',
'TeaShark' => 'teashark',
'Blazer' => 'Blazer',
// @reference: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3
'Safari' => 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
// http://en.wikipedia.org/wiki/Midori_(web_browser)
//'Midori' => 'midori',
//'Tizen' => 'Tizen',
'WeChat' => '\bMicroMessenger\b',
'UCBrowser' => 'UC.*Browser|UCWEB',
'baiduboxapp' => 'baiduboxapp',
'baidubrowser' => 'baidubrowser',
// https://github.com/serbanghita/Mobile-Detect/issues/7
'DiigoBrowser' => 'DiigoBrowser',
// http://www.puffinbrowser.com/index.php
// https://github.com/serbanghita/Mobile-Detect/issues/752
// 'Puffin' => 'Puffin',
// http://mercury-browser.com/index.html
'Mercury' => '\bMercury\b',
// http://en.wikipedia.org/wiki/Obigo_Browser
'ObigoBrowser' => 'Obigo',
// http://en.wikipedia.org/wiki/NetFront
'NetFront' => 'NF-Browser',
// @reference: http://en.wikipedia.org/wiki/Minimo
// http://en.wikipedia.org/wiki/Vision_Mobile_Browser
'GenericBrowser' => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
// @reference: https://en.wikipedia.org/wiki/Pale_Moon_(web_browser)
'PaleMoon' => 'Android.*PaleMoon|Mobile.*PaleMoon',
);
Хорошо. Но это тип запроса изменит, а что на счет длины адреса? Я для редактирования ссылки передаю в адрес айди страницы, айди картинки и айди ссылки. Меня этот момент интересует.