site = WebflowSite::byId(new WebflowSites($webflowApiClient), '5ebabfe546c816388d66c03a'); $this->apiClient = $webflowApiClient; $this->logger= $l; $this->reader = $reader; } public function supports(string $resourceClass, ?string $operationName = null, array $context = []): bool { $this->logger->debug(__METHOD__, [$resourceClass, $operationName, $context]); return in_array($resourceClass, [ WebflowCollection::class, WebflowCollectionAudience::class, WebflowCollectionCategory::class, WebflowCollectionDates::class, WebflowCollectionEvent::class, ]); } public function getCollection(string $resourceClass, ?string $operationName = null, array $context = []): \Generator { switch ($resourceClass) { case WebflowCollection::class: foreach($this->site->getCollections() as $col) { $class = WebflowCollection::fromClient($col, $this->reader); yield $class; } break; case WebflowCollectionAudience::class: case WebflowCollectionCategory::class: case WebflowCollectionDates::class: case WebflowCollectionEvent::class: $col = WebflowApiCollection::byId($this->site, $resourceClass::cid())->load(); foreach ($col->getItems() as $item) { $class = $resourceClass::fromClient($item, $this->reader); yield $class; } } return null; } }