--- /dev/null
+<?php
+
+ require_once('protected/required.php');
+
+ class PdoPatchManager extends AbstractPdoManager {
+
+ public function createPatch($patch) {
+
+ $query = $this -> pdo -> prepare(
+ 'INSERT INTO patches (tasks, configs, version, file_url) VALUES (NOW(), :configs, :version, :file_url);'
+ );
+ $query -> bindValue(':configs', $patch -> getConfigs());
+ $query -> bindValue(':version', $patch -> getVersion());
+ $query -> bindValue(':file_url', $patch -> getFileUrl());
+ $query -> execute();
+ }
+
+ public function updatePatch($patch) {
+
+ $query = $this -> pdo -> prepare(
+ 'UPDATE patches
+ SET tasks = :tasks,
+ configs = :configs,
+ version = :version,
+ file_url = :file_url
+ WHERE id = :id'
+ );
+ $query -> bindValue(':id', $patch -> getId());
+ $query -> bindValue(':tasks', $patch -> getTasks());
+ $query -> bindValue(':configs', $patch -> getConfigs());
+ $query -> bindValue(':version', $patch -> getVersion());
+ $query -> bindValue(':file_url', $patch -> getFileUrl());
+ $query -> execute();
+ }
+
+ public function getPatch($id) {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM patches WHERE id = :id');
+ $query -> bindValue(':id', $id);
+ $query -> execute();
+
+ $result = $query -> fetch(PDO::FETCH_ASSOC);
+ $patch = new Patch($result['id'], $result['tasks'], $result['configs'], $result['version'], $result['file_url']);
+
+ $query->closeCursor();
+
+ return $patch;
+ }
+
+ public function getPatchForVersionId($version_id) {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM patches WHERE version = :version');
+ $query -> bindValue(':version', $version_id);
+ $query -> execute();
+
+ $result = $query -> fetch(PDO::FETCH_ASSOC);
+ $patch = new Patch($result['id'], $result['tasks'], $result['configs'], $result['version'], $result['file_url']);
+
+ $query->closeCursor();
+
+ return $patch;
+ }
+
+ public function getLastPatch() {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM patches WHERE id = LAST_INSERT_ID()');
+ $query -> execute();
+
+ $result = $query -> fetch(PDO::FETCH_ASSOC);
+ $patch = new Patch($result['id'], $result['tasks'], $result['configs'], $result['version'], $result['file_url']);
+
+ $query->closeCursor();
+
+ return $patch;
+ }
+
+ public function getPatches() {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM patches');
+ $query -> execute();
+
+ $results = $query -> fetchAll(PDO::FETCH_ASSOC);
+ $patches = array();
+ foreach ($results as $result) {
+ $patches[] = new Patch($result['id'], $result['tasks'], $result['configs'], $result['version'], $result['file_url']);
+ }
+
+ $query->closeCursor();
+
+ return $patches;
+ }
+
+ public function removePatch($patch) {
+
+ $query = $this -> pdo -> prepare('DELETE FROM patches WHERE id = :id');
+ $query -> bindValue('id', $patch -> getId());
+ $query -> execute();
+ }
+
+ }