Pakiet jenssegers-agent jest parserem klienta użytkownika stacjonarnego/mobilnego z obsługą Laravel, opartym na MobileDetect. Możesz użyć tego pakietu w dowolnej aplikacji PHP, a także zapewnia dostawcę usług Laravel, zapewniając usługę Fasada:
use Jenssegers\Agent\Facades\Agent;
Agent::is('Firefox');
Agent::is('iPhone');
// Magic methods
Agent::isFirefox();
Agent::isIPhone();
// Device type
Agent::isDesktop();
Agent::isMobile();
Agent::isTablet();
Agent::isPhone();
Oprócz pomocników agenta użytkownika, usługa agenta zapewnia pomocnika języka, metodę nazwy urządzenia, platformę i inne. Na przykład można uzyskać zaakceptowane języki przeglądarki za pomocą następującej metody:
Agent::languages(); // ['en-us', 'en']
Korzystając z metody języków, można ustawić ustawienia regionalne podczas żądania w oprogramowaniu pośredniczącym. Oto prosty przykład, aby zilustrować to z mojej głowy:
public function handle(Request $request, Closure $next): Response
{
$supported_locales = ['en', 'es'];
$user_locales = Agent::languages();
foreach ($user_locales as $locale) {
if (in_array($locale, $supported_locales)) {
app()->setLocale($locale);
}
}
return $next($request);
}
Jeśli nie obsługujesz ustawień regionalnych, config('app.fallback_locale')
ustawienie zdefiniuje ustawienia regionalne. Możesz również użyć tej languages()
metody w oprogramowaniu pośredniczącym, aby przekierować prefiks /{locale}/
trasy specyficzny dla ustawień regionalnych na podstawie obsługiwanego języka klienta użytkownika.
Route::prefix('/{locale}')->group(function () {
// ...
})->whereIn('locale', ['en', 'es']);
Usługa Agent
może również określić, czy bieżący klient użytkownika jest botem i jakiego typu bot:
// Is the user a bot?
Agent::isRobot(); // bool
// get the robot name
Agent::robot();
Wreszcie, aby uzyskać nazwę urządzenia, platformę i przeglądarkę, możesz użyć trafnie nazwanych metod na fasadzie:
Agent::device(); // "Macintosh"
Agent::platform(); // "OS X"
Agent::browser(); // "Safari"