sources['test-source'] = new Source( new SourceId('test-source'), 'Test Source', 'A test source', 'https://example.com', [ 'imageSelector' => 'img.manga-image', 'nextPageSelector' => null, 'chapterUrlFormat' => 'https://example.com/manga/{slug}/chapter-{chapterNumber}' ], true, new DateTimeImmutable(), new DateTimeImmutable() ); } public function getById(string $id): Source { if (!isset($this->sources[$id])) { throw new \RuntimeException('Source not found'); } return $this->sources[$id]; } public function save(Source $source): void { $this->sources[$source->getId()->getValue()] = $source; } public function clear(): void { $this->sources = []; } }