Avez-vous déjà eu du mal à offrir la bonne expérience aux utilisateurs sur différents appareils ? À une époque où les utilisateurs basculent facilement entre les téléphones, les tablettes et les ordinateurs de bureau, la détection précise des appareils peut s'avérer un véritable casse-tête. C'est là qu'intervient EprofosUserAgentAnalyzerBundle.
Contrairement aux analyseurs d'agent utilisateur traditionnels, EprofosUserAgentAnalyzerBundle propose :
composer require eprofos/user-agent-analyzer
C'est ça ! Le bundle se configure automatiquement dans votre application Symfony.
Transformez cette détection complexe :
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false) { // Is it really mobile? What about tablets? // What about desktop mode on mobile? }
Dans cette solution élégante :
{% 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() ] };
Le pack est conçu dans un souci de performance :
EPROFOS (École professionnelle de formation spécialisée) est l'école de référence en matière de formations spécialisées en développement web, mobile et logiciel. Nous sommes spécialisés dans le développement de solutions Web de haute qualité et nous nous engageons à créer des outils qui aident les développeurs à créer de meilleures applications plus efficacement.
composer require eprofos/user-agent-analyzer
Visitez notre référentiel GitHub pour :
Rejoignez-nous pour rendre le développement Web plus intelligent et plus efficace !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!