@@ -1,19 +1,19 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | namespace Maphper; |
| 3 | 3 | class Maphper implements \Countable, \ArrayAccess, \IteratorAggregate { |
| 4 | - const FIND_EXACT = 0x1; |
|
| 5 | - const FIND_LIKE = 0x2; |
|
| 6 | - const FIND_STARTS = 0x4; |
|
| 7 | - const FIND_ENDS = 0x8; |
|
| 8 | - const FIND_BIT = 0x10; |
|
| 9 | - const FIND_GREATER = 0x20; |
|
| 10 | - const FIND_LESS = 0x40; |
|
| 11 | - const FIND_EXPRESSION = 0x80; |
|
| 12 | - const FIND_AND = 0x100; |
|
| 13 | - const FIND_OR = 0x200; |
|
| 14 | - const FIND_NOT = 0x400; |
|
| 15 | - const FIND_BETWEEN = 0x800; |
|
| 16 | - const FIND_NOCASE = 0x1000; |
|
| 4 | + const FIND_EXACT = 0x1; |
|
| 5 | + const FIND_LIKE = 0x2; |
|
| 6 | + const FIND_STARTS = 0x4; |
|
| 7 | + const FIND_ENDS = 0x8; |
|
| 8 | + const FIND_BIT = 0x10; |
|
| 9 | + const FIND_GREATER = 0x20; |
|
| 10 | + const FIND_LESS = 0x40; |
|
| 11 | + const FIND_EXPRESSION = 0x80; |
|
| 12 | + const FIND_AND = 0x100; |
|
| 13 | + const FIND_OR = 0x200; |
|
| 14 | + const FIND_NOT = 0x400; |
|
| 15 | + const FIND_BETWEEN = 0x800; |
|
| 16 | + const FIND_NOCASE = 0x1000; |
|
| 17 | 17 | |
| 18 | 18 | private $dataSource; |
| 19 | 19 | private $relations = []; |
@@ -25,8 +25,8 @@ discard block |
||
| 25 | 25 | $this->settings = array_replace($this->settings, $settings); |
| 26 | 26 | $this->relations = $relations; |
| 27 | 27 | if (!isset($this->settings['writeClosure'])) { |
| 28 | - $this->settings['writeClosure'] = function ($field, $value) { $this->$field = $value; }; |
|
| 29 | - } elseif (! $this->settings['writeClosure'] instanceof \Closure) { |
|
| 28 | + $this->settings['writeClosure'] = function($field, $value) { $this->$field = $value; }; |
|
| 29 | + } elseif (!$this->settings['writeClosure'] instanceof \Closure) { |
|
| 30 | 30 | throw new \InvalidArgumentException('The mapper writeClosure must be an anonymous function'); |
| 31 | 31 | } |
| 32 | 32 | } |
@@ -59,7 +59,7 @@ discard block |
||
| 59 | 59 | } |
| 60 | 60 | } |
| 61 | 61 | $results = $this->dataSource->findByField($this->settings['filter'], |
| 62 | - ['order' => $this->settings['sort'], 'limit' => $this->settings['limit'], 'offset' => $this->settings['offset'] ]); |
|
| 62 | + ['order' => $this->settings['sort'], 'limit' => $this->settings['limit'], 'offset' => $this->settings['offset']]); |
|
| 63 | 63 | |
| 64 | 64 | $siblings = new \ArrayObject(); |
| 65 | 65 | |
@@ -99,7 +99,7 @@ discard block |
||
| 99 | 99 | $valueCopy = clone $value; |
| 100 | 100 | $value = $this->wrap($value); |
| 101 | 101 | $this->dataSource->save($value); |
| 102 | - $value = $this->wrap((object) array_merge((array)$value, (array)$valueCopy)); |
|
| 102 | + $value = $this->wrap((object)array_merge((array)$value, (array)$valueCopy)); |
|
| 103 | 103 | $this->createNew($value, $valueObj); |
| 104 | 104 | } |
| 105 | 105 | |
@@ -109,7 +109,7 @@ discard block |
||
| 109 | 109 | $data = $this->dataSource->findByField(array_merge($this->settings['filter'], [$this->dataSource->getPrimaryKey()[0] => $offset])); |
| 110 | 110 | return isset($data[0]); |
| 111 | 111 | } |
| 112 | - return (bool) $this->dataSource->findById($offset); |
|
| 112 | + return (bool)$this->dataSource->findById($offset); |
|
| 113 | 113 | } |
| 114 | 114 | |
| 115 | 115 | public function offsetUnset($id) { |
@@ -145,7 +145,7 @@ discard block |
||
| 145 | 145 | private function wrap($object, $key = null, $siblings = null) { |
| 146 | 146 | //see if any relations need overwriting |
| 147 | 147 | foreach ($this->relations as $name => $relation) { |
| 148 | - if (isset($object->$name) && !($object->$name instanceof \Maphper\Relation) ) { |
|
| 148 | + if (isset($object->$name) && !($object->$name instanceof \Maphper\Relation)) { |
|
| 149 | 149 | //After overwriting the relation, does the parent object ($object) need overwriting as well? |
| 150 | 150 | if ($relation->overwrite($object, $object->$name)) $this[] = $object; |
| 151 | 151 | } |
@@ -96,7 +96,7 @@ discard block |
||
| 96 | 96 | return; |
| 97 | 97 | |
| 98 | 98 | $runAgain = false; |
| 99 | - $columns = $this->pdo->query('SELECT * FROM '. $this->quote($table) . ' PROCEDURE ANALYSE(1,1)')->fetchAll(\PDO::FETCH_OBJ); |
|
| 99 | + $columns = $this->pdo->query('SELECT * FROM ' . $this->quote($table) . ' PROCEDURE ANALYSE(1,1)')->fetchAll(\PDO::FETCH_OBJ); |
|
| 100 | 100 | foreach ($columns as $column) { |
| 101 | 101 | $parts = explode('.', $column->Field_name); |
| 102 | 102 | $name = $this->quote(end($parts)); |
@@ -130,7 +130,7 @@ discard block |
||
| 130 | 130 | } |
| 131 | 131 | } |
| 132 | 132 | |
| 133 | - $this->pdo->query('ALTER TABLE ' . $this->quote($table) . ' MODIFY '. $name . ' ' . $type); |
|
| 133 | + $this->pdo->query('ALTER TABLE ' . $this->quote($table) . ' MODIFY ' . $name . ' ' . $type); |
|
| 134 | 134 | } |
| 135 | 135 | } |
| 136 | 136 | //Sometimes a second pass is needed, if a column has gone from varchar -> int(11) a better int type may be needed |
@@ -29,7 +29,7 @@ discard block |
||
| 29 | 29 | if (isset($options['fields'])) $this->fields = implode(',', array_map([$this->adapter, 'quote'], $options['fields'])); |
| 30 | 30 | $this->defaultSort = (isset($options['defaultSort'])) ? $options['defaultSort'] : implode(', ', $this->primaryKey); |
| 31 | 31 | if (isset($options['editmode'])) $this->alterDb = $options['editmode'] == true ? self::EDIT_STRUCTURE | self::EDIT_INDEX | self::EDIT_OPTIMISE : $options['editmode']; |
| 32 | - if (self::EDIT_OPTIMISE & $this->alterDb && rand(0,500) == 1) $this->adapter->optimiseColumns($table); |
|
| 32 | + if (self::EDIT_OPTIMISE & $this->alterDb && rand(0, 500) == 1) $this->adapter->optimiseColumns($table); |
|
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | private function getAdapter(\PDO $pdo) { |
@@ -168,7 +168,7 @@ discard block |
||
| 168 | 168 | //Something has changed, clear any cached results as they may now be incorrect |
| 169 | 169 | $this->resultCache = []; |
| 170 | 170 | $pkValue = $data->{$this->primaryKey[0]}; |
| 171 | - if (isset($this->cache[$pkValue])) $this->cache[$pkValue] = (object) array_merge((array)$this->cache[$pkValue], (array)$data); |
|
| 171 | + if (isset($this->cache[$pkValue])) $this->cache[$pkValue] = (object)array_merge((array)$this->cache[$pkValue], (array)$data); |
|
| 172 | 172 | else $this->cache[$pkValue] = $data; |
| 173 | 173 | } |
| 174 | 174 | |
@@ -33,7 +33,7 @@ |
||
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | private function getSearchFieldFunction($fields, $mode) { |
| 36 | - return function ($data) use ($fields, $mode) { |
|
| 36 | + return function($data) use ($fields, $mode) { |
|
| 37 | 37 | foreach ($fields as $key => $val) { |
| 38 | 38 | $currentFieldResult = $this->getIfFieldMatches($key, $val, $data, $mode); |
| 39 | 39 | |
@@ -23,7 +23,7 @@ discard block |
||
| 23 | 23 | |
| 24 | 24 | $args = $query->getArgs(); |
| 25 | 25 | foreach ($args as &$arg) if ($arg instanceof \DateTime) { |
| 26 | - if ($arg->format('H:i:s') == '00:00:00') $arg = $arg->format('Y-m-d'); |
|
| 26 | + if ($arg->format('H:i:s') == '00:00:00') $arg = $arg->format('Y-m-d'); |
|
| 27 | 27 | else $arg = $arg->format('Y-m-d H:i:s'); |
| 28 | 28 | } |
| 29 | 29 | |
@@ -63,7 +63,7 @@ discard block |
||
| 63 | 63 | } |
| 64 | 64 | |
| 65 | 65 | private function tableExists($name) { |
| 66 | - $result = $this->pdo->query('SELECT name FROM sqlite_master WHERE type="table" and name="'. $name.'"'); |
|
| 66 | + $result = $this->pdo->query('SELECT name FROM sqlite_master WHERE type="table" and name="' . $name . '"'); |
|
| 67 | 67 | return count($result->fetchAll()) == 1; |
| 68 | 68 | } |
| 69 | 69 | |
@@ -82,7 +82,7 @@ discard block |
||
| 82 | 82 | // SQLSTATE[HY000]: General error: 17 database schema has changed |
| 83 | 83 | $this->queryCache = []; |
| 84 | 84 | |
| 85 | - $affix = '_'.substr(md5($table), 0, 6); |
|
| 85 | + $affix = '_' . substr(md5($table), 0, 6); |
|
| 86 | 86 | $this->createTable($table . $affix, $primaryKey, $data); |
| 87 | 87 | $fields = []; |
| 88 | 88 | foreach ($data as $key => $value) { $fields[] = $key; } |
@@ -91,7 +91,7 @@ discard block |
||
| 91 | 91 | $columns = implode(', ', $this->getColumns($table)); |
| 92 | 92 | |
| 93 | 93 | $this->pdo->query('INSERT INTO ' . $this->quote($table . $affix) . '(' . $columns . ') SELECT ' . $columns . ' FROM ' . $this->quote($table)); |
| 94 | - $this->pdo->query('DROP TABLE IF EXISTS ' . $table ); |
|
| 94 | + $this->pdo->query('DROP TABLE IF EXISTS ' . $table); |
|
| 95 | 95 | } |
| 96 | 96 | } |
| 97 | 97 | catch (\PDOException $e) { |
@@ -99,8 +99,8 @@ discard block |
||
| 99 | 99 | echo $e->getMessage(); |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | - $this->pdo->query('DROP TABLE IF EXISTS ' . $table ); |
|
| 103 | - $this->pdo->query('ALTER TABLE ' . $table . $affix. ' RENAME TO '. $table ); |
|
| 102 | + $this->pdo->query('DROP TABLE IF EXISTS ' . $table); |
|
| 103 | + $this->pdo->query('ALTER TABLE ' . $table . $affix . ' RENAME TO ' . $table); |
|
| 104 | 104 | |
| 105 | 105 | } |
| 106 | 106 | |
@@ -114,7 +114,7 @@ discard block |
||
| 114 | 114 | |
| 115 | 115 | $pkField = implode(', ', $parts) . ', PRIMARY KEY(' . implode(', ', $primaryKey) . ')'; |
| 116 | 116 | |
| 117 | - $this->pdo->query('DROP TABLE IF EXISTS ' . $table ); |
|
| 117 | + $this->pdo->query('DROP TABLE IF EXISTS ' . $table); |
|
| 118 | 118 | $this->pdo->query('CREATE TABLE ' . $table . ' (' . $pkField . ')'); |
| 119 | 119 | |
| 120 | 120 | foreach ($data as $key => $value) { |
@@ -25,7 +25,7 @@ discard block |
||
| 25 | 25 | |
| 26 | 26 | |
| 27 | 27 | //Needs to be broken up into better methods |
| 28 | - public function createSql($fields, $mode){ |
|
| 28 | + public function createSql($fields, $mode) { |
|
| 29 | 29 | $args = []; |
| 30 | 30 | $sql = []; |
| 31 | 31 | |
@@ -50,7 +50,7 @@ discard block |
||
| 50 | 50 | $inSql[] = ':' . $key . $i; |
| 51 | 51 | } |
| 52 | 52 | if (count($inSql) == 0) return []; |
| 53 | - else $sql[] = $key . ' IN ( ' . implode(', ', $inSql) . ')'; |
|
| 53 | + else $sql[] = $key . ' IN ( ' . implode(', ', $inSql) . ')'; |
|
| 54 | 54 | } |
| 55 | 55 | else if ($value === NULL) { |
| 56 | 56 | $nullSql = $key . ' IS '; |
@@ -7,7 +7,7 @@ |
||
| 7 | 7 | public function __construct() { |
| 8 | 8 | $this->readClosure = function() { |
| 9 | 9 | $data = new \stdClass; |
| 10 | - foreach ($this as $k => $v) { |
|
| 10 | + foreach ($this as $k => $v) { |
|
| 11 | 11 | if (is_scalar($v) || is_null($v) || (is_object($v) && $v instanceof \DateTime)) $data->$k = $v; |
| 12 | 12 | } |
| 13 | 13 | return $data; |
@@ -19,11 +19,11 @@ discard block |
||
| 19 | 19 | //For dates with times set, search on time, if the time is not set, search on date only. |
| 20 | 20 | //E.g. searching for all records posted on '2015-11-14' should return all records that day, not just the ones posted at 00:00:00 on that day |
| 21 | 21 | if ($value instanceof \DateTime) { |
| 22 | - if ($value->format('H:i:s') == '00:00:00') $value = $value->format('Y-m-d'); |
|
| 22 | + if ($value->format('H:i:s') == '00:00:00') $value = $value->format('Y-m-d'); |
|
| 23 | 23 | else $value = $value->format('Y-m-d H:i:s'); |
| 24 | 24 | } |
| 25 | 25 | if (is_object($value)) continue; |
| 26 | - if ($prependField){ |
|
| 26 | + if ($prependField) { |
|
| 27 | 27 | $sql[] = $this->quote($field) . ' = :' . $field; |
| 28 | 28 | } else { |
| 29 | 29 | $sql[] = ':' . $field; |
@@ -35,13 +35,13 @@ discard block |
||
| 35 | 35 | |
| 36 | 36 | public function insert($table, $data) { |
| 37 | 37 | $query = $this->buildSaveQuery($data); |
| 38 | - return new Query('INSERT INTO ' . $this->quote($table) . ' (' .implode(', ', array_keys($query['args'])).') VALUES ( ' . implode(', ', $query['sql']). ' )', $query['args']); |
|
| 38 | + return new Query('INSERT INTO ' . $this->quote($table) . ' (' . implode(', ', array_keys($query['args'])) . ') VALUES ( ' . implode(', ', $query['sql']) . ' )', $query['args']); |
|
| 39 | 39 | } |
| 40 | 40 | |
| 41 | 41 | public function update($table, array $primaryKey, $data) { |
| 42 | 42 | $query = $this->buildSaveQuery($data, true); |
| 43 | 43 | $where = []; |
| 44 | - foreach($primaryKey as $field) $where[] = $this->quote($field) . ' = :' . $field; |
|
| 45 | - return new Query('UPDATE ' . $this->quote($table) . ' SET ' . implode(', ', $query['sql']). ' WHERE '. implode(' AND ', $where), $query['args']); |
|
| 44 | + foreach ($primaryKey as $field) $where[] = $this->quote($field) . ' = :' . $field; |
|
| 45 | + return new Query('UPDATE ' . $this->quote($table) . ' SET ' . implode(', ', $query['sql']) . ' WHERE ' . implode(' AND ', $where), $query['args']); |
|
| 46 | 46 | } |
| 47 | 47 | } |
@@ -24,8 +24,8 @@ discard block |
||
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | public function offsetGet($key) { |
| 27 | - $depth = $this->getDepth()+1; |
|
| 28 | - if (count($this->primaryKey)-1 == $depth) return $this->mapper->filter([$this->primaryKey[$depth] => $key])->item(0); |
|
| 27 | + $depth = $this->getDepth() + 1; |
|
| 28 | + if (count($this->primaryKey) - 1 == $depth) return $this->mapper->filter([$this->primaryKey[$depth] => $key])->item(0); |
|
| 29 | 29 | else return new MultiPk($this->mapper, $key, $this->primaryKey, $this); |
| 30 | 30 | } |
| 31 | 31 | |
@@ -44,7 +44,7 @@ discard block |
||
| 44 | 44 | |
| 45 | 45 | public function offsetUnset($key) { |
| 46 | 46 | $keys = $this->primaryKey; |
| 47 | - $this->mapper->filter([ array_pop($keys) => $key])->delete(); |
|
| 47 | + $this->mapper->filter([array_pop($keys) => $key])->delete(); |
|
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | public function offsetExists($key) { |