/** * Returns a model by its model id * * @return Model */ public static function getById($id, $class) { if (!$class || !is_subclass_of($class, 'Model')) { throw new Exception("Model class name must be provided ('{$class}' was given)."); } if ($id instanceof $class) { return $id; } if (!is_numeric($id)) { return null; } if (isset(self::$loaded[$class][$id]) && self::$loaded[$class][$id]->getId() > 0) { return self::$loaded[$class][$id]; } if (!($table = Model::getTable($class))) { return; } $db = self::getDB($class); $sql = $db->prepare("SELECT * FROM `%s` WHERE id = %d LIMIT 1", $table, $id); if ($results = $db->execute($sql)) { return Model::getFromSQL($results, $class, false); } }