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}', 'scrapingType' => 'html', 'chapterSelector' => '.chapter-item' ], true, new DateTimeImmutable(), new DateTimeImmutable() ); } public function getById(string $id): ?Source { return $this->sources[$id] ?? null; } /** * @return Source[] */ public function getAll(): array { return array_values($this->sources); } public function save(Source $source): void { $this->sources[$source->getId()->getValue()] = $source; } public function clear(): void { $this->sources = []; } }