public function checkAndProxyEvent(CrawlerRequestEvent $event, $name) { $uri = $event->getRequest()->getUri(); if ($this->matcher->matches($uri)) { $this->dispatcher->dispatch($name, $event); } }
/** * Act on a response event. * * @param \LastCall\Crawler\Event\CrawlerRequestEvent $event * @param $eventName * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher */ public function onEvent(CrawlerRequestEvent $event, $eventName, EventDispatcherInterface $dispatcher) { if ($event instanceof CrawlerResponseEvent) { // @todo: Detect HTML here. $htmlEvent = new CrawlerHtmlResponseEvent($event->getRequest(), $event->getResponse()); $dispatcher->dispatch($eventName . '.html', $htmlEvent); foreach ($htmlEvent->getAdditionalRequests() as $request) { $event->addAdditionalRequest($request); } } }
private function getUri(CrawlerRequestEvent $event) { return $event->getRequest()->getUri(); }