Analyser.php 913 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace WhichBrowser;
  3. use WhichBrowser\Constants;
  4. use WhichBrowser\Model\Main;
  5. class Analyser
  6. {
  7. use Analyser\Header, Analyser\Derive, Analyser\Corrections, Analyser\Camouflage;
  8. private $data;
  9. private $options;
  10. private $headers = [];
  11. public function __construct($headers, $options = [])
  12. {
  13. $this->headers = $headers;
  14. $this->options = (object) $options;
  15. }
  16. public function setData(&$data)
  17. {
  18. $this->data =& $data;
  19. }
  20. public function &getData()
  21. {
  22. return $this->data;
  23. }
  24. public function analyse()
  25. {
  26. if (!isset($this->data)) {
  27. $this->data = new Main();
  28. }
  29. /* Start the actual analysing steps */
  30. $this->analyseHeaders()
  31. ->deriveInformation()
  32. ->applyCorrections()
  33. ->detectCamouflage()
  34. ->deriveDeviceSubType();
  35. }
  36. }