MobileDetector::isMobileDevice()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
c 0
b 0
f 0
rs 10
cc 1
nc 1
nop 0
1
<?php
2
declare(strict_types=1);
3
4
/**
5
 * File:MobileDetector.php
6
 *
7
 * @author Maciej Sławik <[email protected]>
8
 * @copyright Copyright (C) 2018 Lizard Media (http://lizardmedia.pl)
9
 */
10
11
namespace LizardMedia\CartRuleMobile\Model;
12
13
use LizardMedia\CartRuleMobile\Api\MobileDetectorInterface;
14
use Zend_Http_UserAgent;
15
16
/**
17
 * Class MobileDetector
18
 * @package LizardMedia\CartRuleMobile\Model
19
 */
20
class MobileDetector implements MobileDetectorInterface
21
{
22
    /**
23
     * @var Zend_Http_UserAgent
24
     */
25
    private $userAgent;
26
27
    /**
28
     * MobileDetector constructor.
29
     * @param Zend_Http_UserAgent $userAgent
30
     */
31
    public function __construct(
32
        Zend_Http_UserAgent $userAgent
33
    ) {
34
        $this->userAgent = $userAgent;
35
    }
36
37
    /**
38
     * @return bool
39
     */
40
    public function isMobileDevice(): bool
41
    {
42
        return (bool)preg_match(
43
            '/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i',
44
            $this->userAgent->getUserAgent()
45
        );
46
47
    }
48
}
49