Server : LiteSpeed System : Linux server335.web-hosting.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64 User : cardxfeb ( 2452) PHP Version : 8.1.34 Disable Function : NONE Directory : /home/cardxfeb/public_html/vendor/spatie/crawler/src/CrawlObservers/ |
<?php
namespace Spatie\Crawler\CrawlObservers;
use ArrayAccess;
use GuzzleHttp\Exception\RequestException;
use Iterator;
use Psr\Http\Message\ResponseInterface;
use Spatie\Crawler\CrawlUrl;
class CrawlObserverCollection implements ArrayAccess, Iterator
{
protected int $position;
public function __construct(protected array $observers = [])
{
$this->position = 0;
}
public function addObserver(CrawlObserver $observer): void
{
$this->observers[] = $observer;
}
public function crawled(CrawlUrl $crawlUrl, ResponseInterface $response): void
{
foreach ($this->observers as $crawlObserver) {
$crawlObserver->crawled(
$crawlUrl->url,
$response,
$crawlUrl->foundOnUrl
);
}
}
public function crawlFailed(CrawlUrl $crawlUrl, RequestException $exception): void
{
foreach ($this->observers as $crawlObserver) {
$crawlObserver->crawlFailed(
$crawlUrl->url,
$exception,
$crawlUrl->foundOnUrl
);
}
}
public function current(): mixed
{
return $this->observers[$this->position];
}
public function offsetGet(mixed $offset): mixed
{
return $this->observers[$offset] ?? null;
}
public function offsetSet(mixed $offset, mixed $value): void
{
if (is_null($offset)) {
$this->observers[] = $value;
} else {
$this->observers[$offset] = $value;
}
}
public function offsetExists(mixed $offset): bool
{
return isset($this->observers[$offset]);
}
public function offsetUnset(mixed $offset): void
{
unset($this->observers[$offset]);
}
public function next(): void
{
$this->position++;
}
public function key(): mixed
{
return $this->position;
}
public function valid(): bool
{
return isset($this->observers[$this->position]);
}
public function rewind(): void
{
$this->position = 0;
}
}