• Czas czytania ~1 min
  • 08.10.2023

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"

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297