init (); $srv = empty ($_REQUEST['srv']) ? '' : $_REQUEST['srv']; $explode = explode (':', $srv, 2); if (count ($explode) > 0) $_REQUEST['service'] = $explode[0]; if (count ($explode) > 1) $_REQUEST['method'] = $explode[1]; $service = empty ($_REQUEST['service']) ? 'html' : $_REQUEST['service']; if (in_array ($service, $this->allowedServices, TRUE)) { $includeFile = __DIR__."/$service-service.php"; require_once ($includeFile); $className = __NAMESPACE__ .'\\'. hyphenToCamelCase ($service, TRUE) .'Service'; $service = new $className ($this); $service->run (); } else http_response_code (400); } function deinit () {} /** * Gets the configuration file name associated to the current vhost * or the default config file if isn't defined a file for the vhost. * * @return string The config file name **/ function getConfigFile () { if (!empty ($_SERVER['SERVER_NAME']) && preg_match ('/^[\w\-\.]+$/', $_SERVER['SERVER_NAME'])) { $hostSplit = explode ('.', $_SERVER['SERVER_NAME']); array_splice ($hostSplit, -2); $subdomain = implode ('.', $hostSplit); $configDir = _CONFIG_DIR .'/'. $this->name; $hostFile = "$configDir/config.$subdomain.php"; } if (isset ($hostFile) && file_exists ($hostFile)) return $hostFile; else return parent::getConfigFile (); } }