さまざまなデバイスのユーザーに適切なエクスペリエンスを提供するのに苦労したことがありますか?ユーザーが携帯電話、タブレット、デスクトップをシームレスに切り替える時代においては、デバイスを正確に検出することが大きな悩みの種になる可能性があります。そこで EprofosUserAgentAnalyzerBundle が登場します。
従来のユーザー エージェント パーサーとは異なり、EprofosUserAgentAnalyzerBundle は以下を提供します:
composer require eprofos/user-agent-analyzer
それだけです!バンドルは Symfony アプリケーション内で自動的に設定されます。
この複雑な検出を変換します:
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false) { // Is it really mobile? What about tablets? // What about desktop mode on mobile? }
このエレガントなソリューションへ:
{% if is_mobile() %} <div class="mobile-view"> {{ include('components/mobile_navigation.html.twig') }} </div> {% endif %}
use Eprofos\UserAgentAnalyzerBundle\Service\UserAgentAnalyzer; class ResponsiveController { public function index(UserAgentAnalyzer $analyzer) { $result = $analyzer->analyzeCurrentRequest(); // Rich device information $deviceInfo = [ 'type' => $result->getDeviceType(), 'os' => [ 'name' => $result->getOsName(), 'version' => $result->getOsVersion(), 'is64bit' => $result->is64BitsMode() ], 'browser' => [ 'name' => $result->getBrowserName(), 'version' => $result->getBrowserVersion(), 'isWebview' => $result->isBrowserAndroidWebview() || $result->isBrowserIosWebview() ] ]; // Use this information to: // 1. Optimize content delivery // 2. Enable platform-specific features // 3. Track usage analytics } }
{# Optimize product gallery based on device #} {% if is_mobile() %} {# Show swipeable gallery #} {{ include('product/mobile_gallery.html.twig') }} {% elseif is_tablet() %} {# Show touch-optimized grid #} {{ include('product/tablet_gallery.html.twig') }} {% else %} {# Show full desktop experience #} {{ include('product/desktop_gallery.html.twig') }} {% endif %}
{# Enable platform-specific features #} {% if is_android() %} {# Android-specific PWA features #} {{ include('pwa/android_install_prompt.html.twig') }} {% elseif is_ios() %} {# iOS-specific PWA features #} {{ include('pwa/ios_install_prompt.html.twig') }} {% endif %}
use Eprofos\UserAgentAnalyzerBundle\Service\UserAgentAnalyzer; class MediaController { public function serveVideo(UserAgentAnalyzer $analyzer) { $result = $analyzer->analyzeCurrentRequest(); // Optimize video delivery $videoConfig = match(true) { $result->isMobile() => [ 'quality' => 'adaptive', 'preload' => 'metadata', 'format' => 'mp4' ], $result->isTablet() => [ 'quality' => 'high', 'preload' => 'auto', 'format' => 'mp4' ], default => [ 'quality' => 'highest', 'preload' => 'auto', 'format' => 'webm' ] }; return $this->render('video/player.html.twig', [ 'config' => $videoConfig ]); } }
$result = $analyzer->analyzeCurrentRequest(); // Check for specific browser features if ($result->getBrowserChromiumVersion()) { // Enable Chrome-specific features } if ($result->getBrowserWebkitVersion()) { // Enable WebKit-specific features } // Check for desktop mode on mobile if ($result->isBrowserDesktopMode()) { // Adjust layout accordingly }
// Detailed OS information $osInfo = match($result->getOsName()) { 'Windows' => [ 'version' => $result->getOsVersion(), 'family' => $result->getOsFamily(), 'is64bit' => $result->is64BitsMode() ], 'macOS' => [ 'version' => $result->getOsVersion(), 'codename' => $result->getOsCodename(), // e.g., "Monterey" 'architecture' => $result->is64BitsMode() ? 'x64' : 'x86' ], default => [ 'name' => $result->getOsName(), 'version' => $result->getOsVersion() ] };
バンドルはパフォーマンスを念頭に置いて設計されています:
EPROFOS (École professionalnelle deformation spécialisée) は、Web、モバイル、およびソフトウェア開発の専門トレーニングのためのリファレンス スクールです。私たちは高品質の Web ソリューションの開発を専門とし、開発者がより優れたアプリケーションをより効率的に構築できるツールの作成に取り組んでいます。
composer require eprofos/user-agent-analyzer
次の GitHub リポジトリにアクセスしてください:
私たちと一緒に Web 開発をよりスマートかつ効率的にしましょう!
以上がスマート デバイス検出で Symfony アプリを強化: EprofosUserAgentAnalyzerBundle をご紹介しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。