• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mimmi20 / browser-detector / 26619626009

29 May 2026 05:20AM UTC coverage: 96.478% (-0.01%) from 96.488%
26619626009

push

github

web-flow
Merge pull request #1058 from mimmi20/dependabot/composer/development-dependencies-f926ab8d74

composer (master)(deps-dev): bump the development-dependencies group with 7 updates

15285 of 15843 relevant lines covered (96.48%)

157.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Loader/EngineLoader.php
1
<?php
2

3
/**
4
 * This file is part of the browser-detector package.
5
 *
6
 * Copyright (c) 2012-2026, Thomas Mueller <mimmi20@live.de>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types = 1);
13

14
namespace BrowserDetector\Loader;
15

16
use BrowserDetector\Version\VersionBuilderInterface;
17
use Override;
18
use Psr\Log\LoggerInterface;
19
use UaLoader\EngineLoaderInterface;
20
use UaLoader\Exception\NotFoundException;
21
use UaResult\Company\Company;
22
use UaResult\Engine\Engine;
23
use UaResult\Engine\EngineInterface;
24
use UnexpectedValueException;
25

26
final class EngineLoader implements EngineLoaderInterface
27
{
28
    use VersionFactoryTrait;
29

30
    /** @throws void */
31
    public function __construct(
×
32
        private readonly LoggerInterface $logger,
33
        private readonly CompanyLoaderInterface $companyLoader,
34
        VersionBuilderInterface $versionBuilder,
35
    ) {
36
        $this->versionBuilder = $versionBuilder;
×
37
    }
38

39
    /** @throws void */
40
    #[Override]
41
    public function load(string $key, string $useragent = ''): EngineInterface
×
42
    {
43
        try {
44
            $engine = \BrowserDetector\Data\Engine::fromName($key);
×
45
        } catch (UnexpectedValueException) {
×
46
            $engine = \BrowserDetector\Data\Engine::unknown;
×
47
        }
48

49
        return $this->loadFromEngine($engine, $useragent);
×
50
    }
51

52
    /** @throws void */
53
    #[Override]
54
    public function loadFromEngine(\UaData\EngineInterface $engine, string $useragent = ''): EngineInterface
×
55
    {
56
        $version      = $this->getVersion((object) $engine->getVersion(), $useragent);
×
57
        $manufacturer = new Company(type: 'unknown', name: null, brandname: null);
×
58

59
        if ($engine->getManufacturer()->getBrandname() !== null) {
×
60
            try {
61
                $manufacturer = $this->companyLoader->load($engine->getManufacturer()->getBrandname());
×
62
            } catch (NotFoundException $e) {
×
63
                $this->logger->info($e);
×
64
            }
65
        }
66

67
        return new Engine(name: $engine->getName(), manufacturer: $manufacturer, version: $version);
×
68
    }
69
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc