/** * @param SiteState $state * @param SiteStateResult $result * * @return SiteExtension[] */ private function getExtensions(SiteState $state, SiteStateResult $result) { if (!$result->extensions) { return []; } $existingExtensions = $state->getSiteExtensions(); $extensions = []; foreach ($result->extensions as $slug => $extensionData) { if (isset($existingExtensions[$slug])) { $extension = $existingExtensions[$slug]; } else { $extension = new SiteExtension($state, $slug); } $extension->setFilename($extensionData->filename)->setType($extensionData->type)->setParent($extensionData->parent)->setEnabled($extensionData->enabled)->setName($extensionData->name)->setDescription($extensionData->description)->setPackage($extensionData->package)->setVersion($extensionData->version)->setRequired($extensionData->required)->setDependencies($extensionData->dependencies)->setProject($extensionData->project); $extensions[$slug] = $extension; } return $extensions; }
public function includeThemes(SiteState $siteState) { return $this->collection($this->filterExtensions($siteState->getSiteExtensions(), SiteExtension::TYPE_THEME), $this->transformers->get(SiteExtension::class)); }