/** * Either creates a completely new entity, or ensures that the passed entity has all the items it * needs to function (e.g. a config repository) * @param Site|null $site */ public function createEntity(Site $site = null) { if (!$site) { $site = new Site($this->config); } else { $site->updateSiteConfigRepository($this->config); } return $site; }