1 | <?php |
||
24 | abstract class AbstractCrawler |
||
25 | { |
||
26 | public const URL_PREFIX = 'http://last.fm'; |
||
27 | |||
28 | public const NEWLINE = "\n"; |
||
29 | |||
30 | /** |
||
31 | * @var ConnectionInterface |
||
32 | */ |
||
33 | private $connection; |
||
34 | |||
35 | /** |
||
36 | * @param ConnectionInterface $connection |
||
37 | */ |
||
38 | public function __construct(ConnectionInterface $connection) |
||
42 | |||
43 | /** |
||
44 | * Crawles a url. |
||
45 | * |
||
46 | * @param string $url |
||
47 | * |
||
48 | * @return Crawler|null |
||
49 | */ |
||
50 | final protected function crawl(string $url): ?Crawler |
||
58 | |||
59 | /** |
||
60 | * @param Crawler $node |
||
61 | * @param DateTime $datetime |
||
62 | * |
||
63 | * @return Event |
||
64 | */ |
||
65 | final protected function parseEvent(Crawler $node, DateTime $datetime = null): Event |
||
99 | |||
100 | /** |
||
101 | * @param Crawler $node |
||
102 | * |
||
103 | * @return Venue|null |
||
104 | */ |
||
105 | final protected function parseVenue(Crawler $node): ?Venue |
||
123 | |||
124 | /** |
||
125 | * Parses a url node. |
||
126 | * |
||
127 | * @param Crawler $node |
||
128 | * @param string $attr |
||
129 | * |
||
130 | * @return string|null |
||
131 | */ |
||
132 | final protected function parseUrl(Crawler $node, string $attr = 'href'): ?string |
||
144 | |||
145 | /** |
||
146 | * Parses an image node. |
||
147 | * |
||
148 | * @param Crawler $node |
||
149 | * |
||
150 | * @return Image|null |
||
151 | */ |
||
152 | final protected function parseImage(Crawler $node): ?Image |
||
162 | |||
163 | /** |
||
164 | * Parses a string node. |
||
165 | * |
||
166 | * @param Crawler $node |
||
167 | * @param bool $multiline |
||
168 | * |
||
169 | * @return string|null |
||
170 | */ |
||
171 | final protected function parseString(Crawler $node, bool $multiline = false): ?string |
||
192 | |||
193 | /** |
||
194 | * Parses a date note. |
||
195 | * |
||
196 | * @param Crawler $node |
||
197 | * |
||
198 | * @return DateTime|null |
||
199 | */ |
||
200 | final protected function parseDate(Crawler $node): ?DateTime |
||
210 | } |
||
211 |
In PHP, under loose comparison (like
==
, or!=
, orswitch
conditions), values of different types might be equal.For
string
values, the empty string''
is a special case, in particular the following results might be unexpected: