/** * Get the backend, creates it if it does not exist * * @static * @return BackendInterface * @throws NoBackendException */ private static function getBackend() { if (!self::$backend) { $backend = new ModuleBackend(); if ($backend->isAvailable()) { self::$backend = $backend; } else { $backend = new CommandLineBackend(); if ($backend->isAvailable()) { self::$backend = $backend; } else { $backend = new SeclibBackend(); if ($backend->isAvailable()) { self::$backend = $backend; } } } if (!self::$backend) { throw new NoBackendException('Unable to optain a backend, please check your PHP configuration'); } } return self::$backend; }