• Час читання ~1 хв
  • 08.10.2023

Пакет jenssegers-agent — це парсер десктопних/мобільних агентів користувача з підтримкою Laravel, заснований на MobileDetect. Ви можете використовувати цей пакет у будь-якій програмі PHP, а також надає постачальника послуг Laravel, надаючи вам послугу Фасад:

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();

Окрім помічників агента користувача, служба агента надає мовний помічник, метод імені пристрою, платформу тощо. Наприклад, ви можете отримати прийнятні мови браузера за допомогою наступного методу:

Agent::languages(); // ['en-us', 'en']

Використовуючи метод languages, ви можете встановити локаль під час запиту в проміжному програмному забезпеченні. Ось простий приклад, щоб проілюструвати його з голови:

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);
}

config('app.fallback_locale')Якщо ви не підтримуєте локаль, налаштування визначить локаль. Ви також можете використовувати languages() метод у проміжному програмному забезпеченні для перенаправлення префікса /{locale}/ маршруту для конкретної локалі на основі підтримуваної мови клієнтського додатка.

Route::prefix('/{locale}')->group(function () {
    // ...
})->whereIn('locale', ['en', 'es']);

Сервіс Agent також може визначити, чи є поточний клієнтський додаток ботом і який тип бота:Нарешті, щоб отримати назву пристрою, платформу та браузер, ви можете використовувати методи з влучною назвою на фасаді:

// Is the user a bot?
Agent::isRobot(); // bool

// get the robot name
Agent::robot();

Agent::device(); // "Macintosh"
Agent::platform(); // "OS X"
Agent::browser(); // "Safari"

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

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...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297