| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- namespace MailPoet\Entities;
- if (!defined('ABSPATH')) exit;
- use MailPoet\Doctrine\EntityTraits\AutoincrementedIdTrait;
- use MailPoet\Doctrine\EntityTraits\CreatedAtTrait;
- use MailPoet\Doctrine\EntityTraits\UpdatedAtTrait;
- use MailPoetVendor\Doctrine\ORM\Mapping as ORM;
- /**
- * @ORM\Entity()
- * @ORM\Table(name="user_agents")
- */
- class UserAgentEntity {
- use AutoincrementedIdTrait;
- use CreatedAtTrait;
- use UpdatedAtTrait;
- public const USER_AGENT_TYPE_HUMAN = 0;
- public const USER_AGENT_TYPE_MACHINE = 1;
- public const MACHINE_USER_AGENTS = [
- 'Mozilla/5.0',
- ];
- /**
- * @ORM\Column(type="string")
- * @var string
- */
- private $hash;
- /**
- * @ORM\Column(type="string")
- * @var string
- */
- private $userAgent;
- public function __construct(
- string $userAgent
- ) {
- $this->setUserAgent($userAgent);
- }
- public function getUserAgent(): string {
- return $this->userAgent;
- }
- public function setUserAgent(string $userAgent): void {
- $this->userAgent = $userAgent;
- $this->hash = (string)crc32($userAgent);
- }
- public function getHash(): string {
- return $this->hash;
- }
- public function getUserAgentType(): int {
- if (in_array($this->getUserAgent(), self::MACHINE_USER_AGENTS, true)) {
- return self::USER_AGENT_TYPE_MACHINE;
- }
- return self::USER_AGENT_TYPE_HUMAN;
- }
- }
|