Юзер-агенты помогают сайтам определить совместимость любой функции сайта с используемым браузером. В противном случае сайт выдаёт ошибку, если какая либо функция не совмещает с поддержкой собственных функций сайта в определенных браузерах.Это уже давно считается плохой практикой и так стараются не делать.
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36
interface Extractor
{
public function extract(): array;
}
class MyObject
{
public $a;
}
class MyOtherObject
{
public $a, $b, $c;
}
class MyObjectExtractor implements Extractor
{
private $object;
public function __construct(MyObject $object)
{
$this->object = $object;
}
public function extract(): array
{
return [
'a' => $this->object->a,
];
}
}
class MyOtherObjectExtractor implements Extractor
{
private $object;
public function __construct(MyOtherObject $object)
{
$this->object = $object;
}
public function extract(): array
{
return [
'a-b' => $this->object->a . $this->object->b,
'c' => $this->object->c->toArray(),
];
}
}