customHostings[DUP_PRO_WPEngine_Host::getIdentifier()] = new DUP_PRO_WPEngine_Host(); $this->customHostings[DUP_PRO_Cloudways_Host::getIdentifier()] = new DUP_PRO_Cloudways_Host(); $this->customHostings[DUP_PRO_GoDaddy_Host::getIdentifier()] = new DUP_PRO_GoDaddy_Host(); $this->customHostings[DUP_PRO_WordpressCom_Host::getIdentifier()] = new DUP_PRO_WordpressCom_Host(); $this->customHostings[DUP_PRO_Liquidweb_Host::getIdentifier()] = new DUP_PRO_Liquidweb_Host(); $this->customHostings[DUP_PRO_Pantheon_Host::getIdentifier()] = new DUP_PRO_Pantheon_Host(); $this->customHostings[DUP_PRO_Flywheel_Host::getIdentifier()] = new DUP_PRO_Flywheel_Host(); } /** * Initialize custom hostings * * @return bool */ public function init() { if ($this->initialized) { return true; } foreach ($this->customHostings as $cHost) { if (!($cHost instanceof DUP_PRO_Host_interface)) { throw new Exception('Host must implement DUP_PRO_Host_interface'); } if ($cHost->isHosting()) { $this->activeHostings[] = $cHost->getIdentifier(); $cHost->init(); } } $this->initialized = true; return true; } /** * Return active hostings * * @return string[] */ public function getActiveHostings() { return $this->activeHostings; } /** * Returns true if the current site is hosted on identified host * * @param string $identifier Host identifier * * @return bool */ public function isHosting($identifier) { return in_array($identifier, $this->activeHostings); } /** * Returns true if the current site is hosted on a managed host * * @return bool */ public function isManaged() { if ($this->isHosting(self::HOST_WORDPRESSCOM)) { return true; } if ($this->isHosting(self::HOST_GODADDY)) { return true; } if ($this->isHosting(self::HOST_WPENGINE)) { return true; } if ($this->isHosting(self::HOST_CLOUDWAYS)) { return true; } if ($this->isHosting(self::HOST_LIQUIDWEB)) { return true; } if ($this->isHosting(self::HOST_PANTHEON)) { return true; } if ($this->isHosting(self::HOST_FLYWHEEL)) { return true; } return false; } /** * Get hostg object * * @param string $identifier Host identifier * * @return DUP_PRO_Host_interface|false */ public function getHosting($identifier) { if ($this->isHosting($identifier)) { return $this->customHostings[$identifier]; } else { return false; } } }