Passed
Push — master ( 3a5dd6...187ded )
by Richard
01:43
created
maphper/relation/manymany.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -88,25 +88,25 @@
 block discarded – undo
88 88
 		list($relatedField, $valueField, $mapper) = $this->getOtherFieldNameInfo();
89 89
 		if ($this->autoTraverse) $this->offsetSetAutotraverse($value, $relatedField, $valueField);
90 90
 		else if ($this->doUpdateInterMapper($value, $relatedField, $valueField)) {
91
-            $record = $value;
91
+			$record = $value;
92 92
 			$record->{$this->parentField} = $value->{$this->intermediateName}->{$this->localField};
93 93
 			$record->$valueField = $this->object->{$relatedField};
94 94
 			$this->intermediateMapper[] = $record;
95 95
 		}
96 96
 	}
97 97
 
98
-    private function doUpdateInterMapper($record, $relatedField, $valueField) {
99
-        return !(isset($record->{$this->parentField}) && isset($record->{$this->intermediateName}) &&
100
-                $record->{$this->parentField} == $record->{$this->intermediateName}->{$this->localField} &&
101
-                $record->$valueField == $this->object->{$relatedField});
102
-    }
103
-
104
-    private function offsetSetAutotraverse($value, $relatedField, $valueField) {
105
-        $record = new \stdClass;
106
-        $record->{$this->parentField} =  $value->{$this->localField};
107
-        $record->$valueField = $this->object->{$relatedField};
108
-        $this->intermediateMapper[] = $record;
109
-    }
98
+	private function doUpdateInterMapper($record, $relatedField, $valueField) {
99
+		return !(isset($record->{$this->parentField}) && isset($record->{$this->intermediateName}) &&
100
+				$record->{$this->parentField} == $record->{$this->intermediateName}->{$this->localField} &&
101
+				$record->$valueField == $this->object->{$relatedField});
102
+	}
103
+
104
+	private function offsetSetAutotraverse($value, $relatedField, $valueField) {
105
+		$record = new \stdClass;
106
+		$record->{$this->parentField} =  $value->{$this->localField};
107
+		$record->$valueField = $this->object->{$relatedField};
108
+		$this->intermediateMapper[] = $record;
109
+	}
110 110
 
111 111
 	public function offsetUnset($id) {
112 112
 		//$this->relation->mapper->filter([$relatedField => $this->object->$valueField, $this->relation->parentField => $id])->delete();
Please login to merge, or discard this patch.
maphper/datasource/mysqladapter.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -3,14 +3,14 @@  discard block
 block discarded – undo
3 3
 class MysqlAdapter implements DatabaseAdapter {
4 4
 	private $pdo;
5 5
 	private $stmtCache;
6
-    private $generalEditor;
6
+	private $generalEditor;
7 7
 
8 8
 	public function __construct(\PDO $pdo) {
9 9
 		$this->pdo = $pdo;
10 10
 		//Set to strict mode to detect 'out of range' errors, action at a distance but it needs to be set for all INSERT queries
11 11
 		$this->pdo->query('SET sql_mode = STRICT_ALL_TABLES');
12
-        $this->stmtCache = new StmtCache($pdo);
13
-        $this->generalEditor = new GeneralEditDatabase($this->pdo, ['short_string_max_len' => 191]);
12
+		$this->stmtCache = new StmtCache($pdo);
13
+		$this->generalEditor = new GeneralEditDatabase($this->pdo, ['short_string_max_len' => 191]);
14 14
 	}
15 15
 
16 16
 	public function quote($str) {
@@ -20,32 +20,32 @@  discard block
 block discarded – undo
20 20
 	public function query(\Maphper\Lib\Query $query) {
21 21
 		$stmt = $this->stmtCache->getCachedStmt($query->getSql());
22 22
 		$args = $query->getArgs();
23
-        $stmt->execute($args);
23
+		$stmt->execute($args);
24 24
 
25 25
 		return $stmt;
26 26
 	}
27 27
 
28
-    private function alterColumns($table, array $primaryKey, $data) {
29
-        foreach ($data as $key => $value) {
28
+	private function alterColumns($table, array $primaryKey, $data) {
29
+		foreach ($data as $key => $value) {
30 30
 			if ($this->generalEditor->isNotSavableType($value, $key, $primaryKey)) continue;
31 31
             
32 32
 			$type = $this->generalEditor->getType($value);
33 33
 			$this->tryAlteringColumn($table, $key, $type);
34 34
 		}
35
-    }
35
+	}
36 36
 
37
-    private function tryAlteringColumn($table, $key, $type) {
38
-        try {
39
-            if (!$this->pdo->query('ALTER TABLE ' . $table . ' ADD ' . $this->quote($key) . ' ' . $type)) throw new \Exception('Could not alter table');
40
-        }
41
-        catch (\Exception $e) {
42
-            $this->pdo->query('ALTER TABLE ' . $table . ' MODIFY ' . $this->quote($key) . ' ' . $type);
43
-        }
44
-    }
37
+	private function tryAlteringColumn($table, $key, $type) {
38
+		try {
39
+			if (!$this->pdo->query('ALTER TABLE ' . $table . ' ADD ' . $this->quote($key) . ' ' . $type)) throw new \Exception('Could not alter table');
40
+		}
41
+		catch (\Exception $e) {
42
+			$this->pdo->query('ALTER TABLE ' . $table . ' MODIFY ' . $this->quote($key) . ' ' . $type);
43
+		}
44
+	}
45 45
 
46 46
 	public function alterDatabase($table, array $primaryKey, $data) {
47 47
 		$this->generalEditor->createTable($table, $primaryKey, $data);
48
-        $this->alterColumns($table, $primaryKey, $data);
48
+		$this->alterColumns($table, $primaryKey, $data);
49 49
 	}
50 50
 
51 51
 	public function lastInsertId() {
Please login to merge, or discard this patch.
maphper/relation/one.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@  discard block
 block discarded – undo
9 9
 	private $siblings = [];
10 10
 
11 11
 	public function __construct(\Maphper\Maphper $mapper, $parentField, $localField, array $criteria = []) {
12
-        if ($criteria) $mapper = $mapper->filter($this->criteira);
12
+		if ($criteria) $mapper = $mapper->filter($this->criteira);
13 13
 		$this->mapper = $mapper;
14 14
 		$this->parentField = $parentField;
15 15
 		$this->localField = $localField;
@@ -48,11 +48,11 @@  discard block
 block discarded – undo
48 48
 		//Fetch the results so they're in the cache for the corresponding maphper object
49 49
 		$results = $this->mapper->filter([$this->localField => $recordsToLoad]);
50 50
 
51
-        $this->loadDataIntoSiblings($results);
51
+		$this->loadDataIntoSiblings($results);
52 52
 	}
53 53
 
54
-    private function loadDataIntoSiblings($results) {
55
-        $cache = [];
54
+	private function loadDataIntoSiblings($results) {
55
+		$cache = [];
56 56
 		foreach ($results as $result) {
57 57
 			$cache[$result->{$this->localField}] = $result;
58 58
 		}
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
 			else $sibling->data = $sibling->mapper->filter([$sibling->localField => $sibling->parentObject->{$this->parentField}])->item(0);
67 67
 		}
68 68
 		*/
69
-    }
69
+	}
70 70
 
71 71
 	public function __call($func, array $args = []) {
72 72
 		if ($this->lazyLoad() == null) return '';
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
 
76 76
 	public function __get($name) {
77 77
 		if ($this->lazyLoad()) return $this->lazyLoad()->$name;
78
-        else return null;
78
+		else return null;
79 79
 	}
80 80
 
81 81
 	public function __isset($name) {
@@ -83,9 +83,9 @@  discard block
 block discarded – undo
83 83
 	}
84 84
 
85 85
 	public function overwrite($parentObject, &$data) {
86
-        $this->mapper[] = $data;
86
+		$this->mapper[] = $data;
87 87
 
88
-        if (!isset($parentObject->{$this->parentField}) || $parentObject->{$this->parentField} != $data->{$this->localField}) {
88
+		if (!isset($parentObject->{$this->parentField}) || $parentObject->{$this->parentField} != $data->{$this->localField}) {
89 89
 			$parentObject->{$this->parentField} = $data->{$this->localField};
90 90
 			//Trigger an update of the parent object
91 91
 			return true;
Please login to merge, or discard this patch.
maphper/datasource/DatabaseCrud.php 1 patch
Indentation   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -2,30 +2,30 @@  discard block
 block discarded – undo
2 2
 namespace Maphper\DataSource;
3 3
 
4 4
 class DatabaseCrud {
5
-    private $crudBuilder;
6
-    private $whereBuilder;
7
-    private $adapter;
8
-    private $databaseModify;
9
-    private $databaseSelect;
10
-    private $table;
11
-    private $primaryKey;
12
-
13
-    public function __construct(DatabaseAdapter $adapter, DatabaseModify $databaseModify, DatabaseSelect $databaseSelect, $table, $primaryKey) {
14
-        $this->adapter = $adapter;
15
-        $this->databaseModify = $databaseModify;
16
-        $this->databaseSelect = $databaseSelect;
17
-        $this->crudBuilder = new \Maphper\Lib\CrudBuilder();
18
-        $this->whereBuilder = new \Maphper\Lib\Sql\WhereBuilder();
19
-        $this->table = $table;
20
-        $this->primaryKey = $primaryKey;
21
-    }
22
-
23
-    public function deleteById($id) {
24
-        $this->adapter->query($this->crudBuilder->delete($this->table, $this->primaryKey[0] . ' = :id', [':id' => $id]));
25
-        $this->databaseSelect->deleteIDFromCache($id);
5
+	private $crudBuilder;
6
+	private $whereBuilder;
7
+	private $adapter;
8
+	private $databaseModify;
9
+	private $databaseSelect;
10
+	private $table;
11
+	private $primaryKey;
12
+
13
+	public function __construct(DatabaseAdapter $adapter, DatabaseModify $databaseModify, DatabaseSelect $databaseSelect, $table, $primaryKey) {
14
+		$this->adapter = $adapter;
15
+		$this->databaseModify = $databaseModify;
16
+		$this->databaseSelect = $databaseSelect;
17
+		$this->crudBuilder = new \Maphper\Lib\CrudBuilder();
18
+		$this->whereBuilder = new \Maphper\Lib\Sql\WhereBuilder();
19
+		$this->table = $table;
20
+		$this->primaryKey = $primaryKey;
26 21
 	}
27 22
 
28
-    public function deleteByField(array $fields, array $options = []) {
23
+	public function deleteById($id) {
24
+		$this->adapter->query($this->crudBuilder->delete($this->table, $this->primaryKey[0] . ' = :id', [':id' => $id]));
25
+		$this->databaseSelect->deleteIDFromCache($id);
26
+	}
27
+
28
+	public function deleteByField(array $fields, array $options = []) {
29 29
 		$query = $this->whereBuilder->createSql($fields);
30 30
 		$this->adapter->query($this->crudBuilder->delete($this->table, $query['sql'], $query['args'], $options['limit'], null, $options['order']));
31 31
 		$this->databaseModify->addIndex(array_keys($query['args']));
@@ -35,22 +35,22 @@  discard block
 block discarded – undo
35 35
 		$this->databaseSelect->clearResultCache();
36 36
 	}
37 37
 
38
-    private function getIfNew($data) {
39
-        $new = false;
40
-        foreach ($this->primaryKey as $k) {
41
-            if (empty($data->$k)) {
42
-                $data->$k = null;
43
-                $new = true;
44
-            }
45
-        }
46
-        return $new;
47
-    }
38
+	private function getIfNew($data) {
39
+		$new = false;
40
+		foreach ($this->primaryKey as $k) {
41
+			if (empty($data->$k)) {
42
+				$data->$k = null;
43
+				$new = true;
44
+			}
45
+		}
46
+		return $new;
47
+	}
48 48
 
49
-    public function save($data, $tryagain = true) {
50
-        $new = $this->getIfNew($data);
49
+	public function save($data, $tryagain = true) {
50
+		$new = $this->getIfNew($data);
51 51
 
52 52
 		try {
53
-            $result = $this->insert($this->table, $this->primaryKey, $data);
53
+			$result = $this->insert($this->table, $this->primaryKey, $data);
54 54
 
55 55
 			//If there was an error but PDO is silent, trigger the catch block anyway
56 56
 			if ($result->errorCode() !== '00000') throw new \Exception('Could not insert into ' . $this->table);
@@ -68,15 +68,15 @@  discard block
 block discarded – undo
68 68
 		$this->databaseSelect->updateCache($data, $data->{$this->primaryKey[0]});
69 69
 	}
70 70
 
71
-    private function updatePK($data, $new) {
72
-        if ($new && count($this->primaryKey) == 1) $data->{$this->primaryKey[0]} = $this->adapter->lastInsertId();
73
-    }
71
+	private function updatePK($data, $new) {
72
+		if ($new && count($this->primaryKey) == 1) $data->{$this->primaryKey[0]} = $this->adapter->lastInsertId();
73
+	}
74 74
 
75
-    private function checkIfUpdateWorked($data) {
76
-        $updateWhere = $this->whereBuilder->createSql($data);
77
-        $matched = $this->databaseSelect->findByField($updateWhere['args']);
78
-        if (count($matched) == 0) throw new \InvalidArgumentException('Record inserted into table ' . $this->table . ' fails table constraints');
79
-    }
75
+	private function checkIfUpdateWorked($data) {
76
+		$updateWhere = $this->whereBuilder->createSql($data);
77
+		$matched = $this->databaseSelect->findByField($updateWhere['args']);
78
+		if (count($matched) == 0) throw new \InvalidArgumentException('Record inserted into table ' . $this->table . ' fails table constraints');
79
+	}
80 80
 
81 81
 	private function insert($table, array $primaryKey, $data) {
82 82
 		$error = 0;
@@ -88,16 +88,16 @@  discard block
 block discarded – undo
88 88
 		}
89 89
 
90 90
  		if ($error || $result->errorCode() !== '00000') {
91
-            $result = $this->tryUpdate($table, $primaryKey, $data);
92
-        }
91
+			$result = $this->tryUpdate($table, $primaryKey, $data);
92
+		}
93 93
 
94 94
 		return $result;
95 95
 	}
96 96
 
97
-    private function tryUpdate($table, array $primaryKey, $data) {
98
-        $result = $this->adapter->query($this->crudBuilder->update($table, $primaryKey, $data));
99
-        if ($result->rowCount() === 0) $this->checkIfUpdateWorked($data);
97
+	private function tryUpdate($table, array $primaryKey, $data) {
98
+		$result = $this->adapter->query($this->crudBuilder->update($table, $primaryKey, $data));
99
+		if ($result->rowCount() === 0) $this->checkIfUpdateWorked($data);
100 100
 
101
-        return $result;
102
-    }
101
+		return $result;
102
+	}
103 103
 }
Please login to merge, or discard this patch.
maphper/lib/Sql/WhereBuilder.php 1 patch
Indentation   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -2,87 +2,87 @@
 block discarded – undo
2 2
 namespace Maphper\Lib\Sql;
3 3
 
4 4
 class WhereBuilder {
5
-    private $conditionals = [];
6
-
7
-    public function __construct() {
8
-        $defaultConditionals = [
9
-            'Maphper\Lib\Sql\Between',
10
-            'Maphper\Lib\Sql\In',
11
-            'Maphper\Lib\Sql\NullConditional',
12
-            'Maphper\Lib\Sql\Like',
13
-            'Maphper\Lib\Sql\GeneralOperator'
14
-        ];
15
-
16
-        foreach ($defaultConditionals as $conditional) $this->addConditional(new $conditional);
17
-    }
5
+	private $conditionals = [];
6
+
7
+	public function __construct() {
8
+		$defaultConditionals = [
9
+			'Maphper\Lib\Sql\Between',
10
+			'Maphper\Lib\Sql\In',
11
+			'Maphper\Lib\Sql\NullConditional',
12
+			'Maphper\Lib\Sql\Like',
13
+			'Maphper\Lib\Sql\GeneralOperator'
14
+		];
15
+
16
+		foreach ($defaultConditionals as $conditional) $this->addConditional(new $conditional);
17
+	}
18 18
 
19
-    public function addConditional(WhereConditional $conditional) {
20
-        $this->conditionals[] = $conditional;
21
-    }
19
+	public function addConditional(WhereConditional $conditional) {
20
+		$this->conditionals[] = $conditional;
21
+	}
22 22
 
23 23
 	public function createSql($fields, $mode = \Maphper\Maphper::FIND_EXACT | \Maphper\Maphper::FIND_AND) {
24 24
 		$args = [];
25 25
 		$sql = [];
26 26
 
27
-        foreach ($fields as $key => $value) {
28
-            $value = $this->convertDates($value);
27
+		foreach ($fields as $key => $value) {
28
+			$value = $this->convertDates($value);
29 29
 
30
-            if (is_object($value)) continue;
30
+			if (is_object($value)) continue;
31 31
 			$result = $this->getResult($key, $value, $mode);
32
-            $result = $this->fixDuplicateArgs($args, $result);
33
-            $sql = array_merge($sql, (array)$result['sql']);
34
-            $args = array_merge($args, $result['args']);
35
-        }
32
+			$result = $this->fixDuplicateArgs($args, $result);
33
+			$sql = array_merge($sql, (array)$result['sql']);
34
+			$args = array_merge($args, $result['args']);
35
+		}
36 36
 
37 37
 		return ['args' => $args, 'sql' => $this->sqlArrayToString($sql, $mode)];
38 38
 	}
39 39
 
40
-    // Returns result with duplicate issues removed
41
-    private function fixDuplicateArgs($origArgs, $result) {
42
-        $duplicates = array_intersect_key($result['args'], $origArgs); // Holds all keys in results already in the args
43
-        if (count($duplicates) === 0) return $result;
40
+	// Returns result with duplicate issues removed
41
+	private function fixDuplicateArgs($origArgs, $result) {
42
+		$duplicates = array_intersect_key($result['args'], $origArgs); // Holds all keys in results already in the args
43
+		if (count($duplicates) === 0) return $result;
44 44
 
45
-        foreach ($duplicates as $argKey => $argVal) {
46
-            $valHash = substr(md5($argVal), 0, 5);
47
-            $newKey = $argKey . $valHash;
45
+		foreach ($duplicates as $argKey => $argVal) {
46
+			$valHash = substr(md5($argVal), 0, 5);
47
+			$newKey = $argKey . $valHash;
48 48
 
49
-            // Replace occurences of duplicate key with key + hash as arg
50
-            $result['sql'] = str_replace(':' . $argKey, ':' . $newKey, $result['sql']);
51
-            unset($result['args'][$argKey]);
52
-            $result['args'][$newKey] = $argVal;
53
-        }
49
+			// Replace occurences of duplicate key with key + hash as arg
50
+			$result['sql'] = str_replace(':' . $argKey, ':' . $newKey, $result['sql']);
51
+			unset($result['args'][$argKey]);
52
+			$result['args'][$newKey] = $argVal;
53
+		}
54 54
 
55
-        return $result;
56
-    }
55
+		return $result;
56
+	}
57 57
 
58
-    /*
58
+	/*
59 59
      * Either get sql from a conditional or call createSql again because the mode needs to be changed
60 60
      */
61
-    private function getResult($key, $value, $mode) {
62
-        if (is_numeric($key) && is_array($value)) return $this->createSql($value, $key);
63
-        return $this->getConditional($key, $value, $mode);
64
-    }
61
+	private function getResult($key, $value, $mode) {
62
+		if (is_numeric($key) && is_array($value)) return $this->createSql($value, $key);
63
+		return $this->getConditional($key, $value, $mode);
64
+	}
65 65
 
66
-    private function sqlArrayToString($sql, $mode) {
67
-        if (\Maphper\Maphper::FIND_OR & $mode) $query = implode(' OR  ', $sql);
66
+	private function sqlArrayToString($sql, $mode) {
67
+		if (\Maphper\Maphper::FIND_OR & $mode) $query = implode(' OR  ', $sql);
68 68
 		else $query = implode(' AND ', $sql);
69 69
 		if (!empty($query)) $query = '(' . $query . ')';
70
-        return $query;
71
-    }
72
-
73
-    private function getConditional($key, $value, $mode) {
74
-        foreach ($this->conditionals as $conditional) {
75
-            if ($conditional->matches($key, $value, $mode))
76
-                return $conditional->getSql($key, $value, $mode);
77
-        }
78
-        throw new \Exception("Invalid WHERE query");
79
-    }
80
-
81
-    private function convertDates($value) {
82
-        if ($value instanceof \DateTimeInterface) {
83
-            if ($value->format('H:i:s')  == '00:00:00') $value = $value->format('Y-m-d');
84
-            else $value = $value->format('Y-m-d H:i:s');
85
-        }
86
-        return $value;
87
-    }
70
+		return $query;
71
+	}
72
+
73
+	private function getConditional($key, $value, $mode) {
74
+		foreach ($this->conditionals as $conditional) {
75
+			if ($conditional->matches($key, $value, $mode))
76
+				return $conditional->getSql($key, $value, $mode);
77
+		}
78
+		throw new \Exception("Invalid WHERE query");
79
+	}
80
+
81
+	private function convertDates($value) {
82
+		if ($value instanceof \DateTimeInterface) {
83
+			if ($value->format('H:i:s')  == '00:00:00') $value = $value->format('Y-m-d');
84
+			else $value = $value->format('Y-m-d H:i:s');
85
+		}
86
+		return $value;
87
+	}
88 88
 }
Please login to merge, or discard this patch.
maphper/lib/dateinjector.php 1 patch
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -18,15 +18,15 @@  discard block
 block discarded – undo
18 18
 		return $obj;
19 19
 	}
20 20
 
21
-    private function tryToGetDateObjFromString($obj) {
22
-        try {
23
-            $date = new \DateTime($obj);
21
+	private function tryToGetDateObjFromString($obj) {
22
+		try {
23
+			$date = new \DateTime($obj);
24 24
 			if ($this->dateMatchesFormats($date, $obj)) $obj = $date;
25
-        }
26
-        catch (\Exception $e) {	//Doesn't need to do anything as the try/catch is working out whether $obj is a date
27
-        }
28
-        return $obj;
29
-    }
25
+		}
26
+		catch (\Exception $e) {	//Doesn't need to do anything as the try/catch is working out whether $obj is a date
27
+		}
28
+		return $obj;
29
+	}
30 30
 
31 31
 	private function dateMatchesFormats($date, $str) {
32 32
 		foreach ($this->dateFormats as list($format, $len)) {
@@ -35,17 +35,17 @@  discard block
 block discarded – undo
35 35
 		return false;
36 36
 	}
37 37
 
38
-    private function isIterable($obj) {
39
-        return is_array($obj) || (is_object($obj) && ($obj instanceof \Iterator));
40
-    }
38
+	private function isIterable($obj) {
39
+		return is_array($obj) || (is_object($obj) && ($obj instanceof \Iterator));
40
+	}
41 41
 
42
-    private function isPossiblyDateString($obj) {
43
-        return is_string($obj) && isset($obj[0]) && is_numeric($obj[0]) && strlen($obj) <= 20;
44
-    }
42
+	private function isPossiblyDateString($obj) {
43
+		return is_string($obj) && isset($obj[0]) && is_numeric($obj[0]) && strlen($obj) <= 20;
44
+	}
45 45
 
46 46
 	private function checkCache($obj, $reset) {
47 47
 		if ($reset) $this->processCache = new \SplObjectStorage();
48
-        if (!is_object($obj)) return false;
48
+		if (!is_object($obj)) return false;
49 49
 
50 50
 		if ($this->processCache->contains($obj)) return $obj;
51 51
 		else $this->processCache->attach($obj, true);
Please login to merge, or discard this patch.