| 1 | <?php | ||
| 13 | abstract class CrawlerAbstract | ||
| 14 | { | ||
| 15 | /** | ||
| 16 | * @var | ||
| 17 | */ | ||
| 18 | protected $url; | ||
| 19 | |||
| 20 | /** | ||
| 21 | * @var string | ||
| 22 | */ | ||
| 23 | protected $sheme = 'https'; | ||
| 24 | |||
| 25 | /** | ||
| 26 | * @var Crawler | ||
| 27 | */ | ||
| 28 | protected $node; | ||
| 29 | |||
| 30 | /** | ||
| 31 | * CrawlerAbstract constructor. | ||
| 32 | * @param Crawler $node | ||
| 33 | * @param $url | ||
| 34 | */ | ||
| 35 | 34 | public function __construct(Crawler $node, $url) | |
| 36 |     { | ||
| 37 | 34 | $this->node = $node; | |
| 38 | |||
| 39 | 34 | $this->setUrlParser($url); | |
| 40 | 34 | } | |
| 41 | |||
| 42 | /** | ||
| 43 | * Return the current node | ||
| 44 | * | ||
| 45 | * @return Crawler | ||
| 46 | */ | ||
| 47 | 2 | public function getCrawler() | |
| 48 |     { | ||
| 49 | 2 | return $this->node; | |
| 50 | } | ||
| 51 | |||
| 52 | /** | ||
| 53 | * @return mixed | ||
| 54 | */ | ||
| 55 | 12 | public function getUrlParser() | |
| 56 |     { | ||
| 57 | 12 | return $this->url; | |
| 58 | } | ||
| 59 | |||
| 60 | /** | ||
| 61 | * Return the field's value | ||
| 62 | * | ||
| 63 | * @param Crawler $node | ||
| 64 | * @param mixed $defaultValue | ||
| 65 | * @param \Closure $callback | ||
| 66 | * @param string $funcName | ||
| 67 | * @param string $funcParam | ||
| 68 | * | ||
| 69 | * @return mixed | ||
| 70 | */ | ||
| 71 | 20 | protected function getFieldValue( | |
| 72 | Crawler $node, | ||
| 73 | $defaultValue, | ||
| 74 | $callback = null, | ||
| 75 | $funcName = 'text', | ||
| 76 | $funcParam = '' | ||
| 77 |     ) { | ||
| 78 | 20 |         if ($callback == null) { | |
| 79 | 20 |             $callback = function ($value) { | |
| 80 | 18 | return DefaultSanitizer::clean($value); | |
| 81 | 20 | }; | |
| 82 | 20 | } | |
| 83 | |||
| 84 | 20 |         if ($node->count()) { | |
| 85 | 18 | return $callback($node->$funcName($funcParam)); | |
| 86 | } | ||
| 87 | |||
| 88 | 12 | return $defaultValue; | |
| 89 | } | ||
| 90 | |||
| 91 | /** | ||
| 92 | * @param $url | ||
| 93 | * @return mixed | ||
| 94 | */ | ||
| 95 | abstract protected function setUrlParser($url); | ||
| 96 | } | ||
| 97 |