/** * @param $id * * @return Engines_EngineInterface * @throws Exception */ public static function getInstance($id) { if (is_null($id) || $id == '') { throw new Exception("Missing id engineRecord", -1); } $engineDAO = new EnginesModel_EngineDAO(Database::obtain()); $engineStruct = EnginesModel_EngineStruct::getStruct(); $engineStruct->id = $id; $eng = $engineDAO->setCacheTTL(60 * 5)->read($engineStruct); /** * @var $engineRecord EnginesModel_EngineStruct */ $engineRecord = @$eng[0]; if (empty($engineRecord)) { throw new Exception("Engine {$id} not found", -2); } $className = 'Engines_' . $engineRecord->class_load; return new $className($engineRecord); }
/** * This method deletes an engine from a user's keyring */ private function disable() { if (empty($this->id)) { $this->result['errors'][] = array('code' => -5, 'message' => "Engine id required"); return; } $engineToBeDeleted = EnginesModel_EngineStruct::getStruct(); $engineToBeDeleted->id = $this->id; $engineToBeDeleted->uid = $this->uid; $engineDAO = new EnginesModel_EngineDAO(Database::obtain()); $result = $engineDAO->disable($engineToBeDeleted); if (!$result instanceof EnginesModel_EngineStruct) { $this->result['errors'][] = array('code' => -9, 'message' => "Deletion failed. Generic error"); return; } $this->result['data']['id'] = $result->id; }