-
Notifications
You must be signed in to change notification settings - Fork 78
/
Parser.php
47 lines (38 loc) · 1.36 KB
/
Parser.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
/**
* ua-parser
*
* Copyright (c) 2011-2013 Dave Olsen, http://dmolsen.com
* Copyright (c) 2013-2014 Lars Strojny, http://usrportage.de
*
* Released under the MIT license
*/
namespace UAParser;
use UAParser\Result\Client;
class Parser extends AbstractParser
{
use ParserFactoryMethods;
/** @var DeviceParser */
private $deviceParser;
/** @var OperatingSystemParser */
private $operatingSystemParser;
/** @var UserAgentParser */
private $userAgentParser;
/** Start up the parser by importing the data file to $this->regexes */
public function __construct(array $regexes)
{
parent::__construct($regexes);
$this->deviceParser = new DeviceParser($this->regexes);
$this->operatingSystemParser = new OperatingSystemParser($this->regexes);
$this->userAgentParser = new UserAgentParser($this->regexes);
}
/** Sets up some standard variables as well as starts the user agent parsing process */
public function parse(string $userAgent, array $jsParseBits = array()): Client
{
$client = new Client($userAgent);
$client->ua = $this->userAgentParser->parseUserAgent($userAgent, $jsParseBits);
$client->os = $this->operatingSystemParser->parseOperatingSystem($userAgent);
$client->device = $this->deviceParser->parseDevice($userAgent);
return $client;
}
}