Passed
Push — master ( 5579b1...b37397 )
by Christoph
13:29 queued 10s
created
lib/private/DB/MDB2SchemaReader.php 1 patch
Indentation   +292 added lines, -292 removed lines patch added patch discarded remove patch
@@ -37,312 +37,312 @@
 block discarded – undo
37 37
 
38 38
 class MDB2SchemaReader {
39 39
 
40
-	/**
41
-	 * @var string $DBTABLEPREFIX
42
-	 */
43
-	protected $DBTABLEPREFIX;
40
+    /**
41
+     * @var string $DBTABLEPREFIX
42
+     */
43
+    protected $DBTABLEPREFIX;
44 44
 
45
-	/**
46
-	 * @var \Doctrine\DBAL\Platforms\AbstractPlatform $platform
47
-	 */
48
-	protected $platform;
45
+    /**
46
+     * @var \Doctrine\DBAL\Platforms\AbstractPlatform $platform
47
+     */
48
+    protected $platform;
49 49
 
50
-	/** @var IConfig */
51
-	protected $config;
50
+    /** @var IConfig */
51
+    protected $config;
52 52
 
53
-	/**
54
-	 * @param \OCP\IConfig $config
55
-	 * @param \Doctrine\DBAL\Platforms\AbstractPlatform $platform
56
-	 */
57
-	public function __construct(IConfig $config, AbstractPlatform $platform) {
58
-		$this->platform = $platform;
59
-		$this->config = $config;
60
-		$this->DBTABLEPREFIX = $config->getSystemValue('dbtableprefix', 'oc_');
61
-	}
53
+    /**
54
+     * @param \OCP\IConfig $config
55
+     * @param \Doctrine\DBAL\Platforms\AbstractPlatform $platform
56
+     */
57
+    public function __construct(IConfig $config, AbstractPlatform $platform) {
58
+        $this->platform = $platform;
59
+        $this->config = $config;
60
+        $this->DBTABLEPREFIX = $config->getSystemValue('dbtableprefix', 'oc_');
61
+    }
62 62
 
63
-	/**
64
-	 * @param string $file
65
-	 * @param Schema $schema
66
-	 * @return Schema
67
-	 * @throws \DomainException
68
-	 */
69
-	public function loadSchemaFromFile($file, Schema $schema) {
70
-		$loadEntities = libxml_disable_entity_loader(false);
71
-		$xml = simplexml_load_file($file);
72
-		libxml_disable_entity_loader($loadEntities);
73
-		foreach ($xml->children() as $child) {
74
-			/**
75
-			 * @var \SimpleXMLElement $child
76
-			 */
77
-			switch ($child->getName()) {
78
-				case 'name':
79
-				case 'create':
80
-				case 'overwrite':
81
-				case 'charset':
82
-					break;
83
-				case 'table':
84
-					$this->loadTable($schema, $child);
85
-					break;
86
-				default:
87
-					throw new \DomainException('Unknown element: ' . $child->getName());
63
+    /**
64
+     * @param string $file
65
+     * @param Schema $schema
66
+     * @return Schema
67
+     * @throws \DomainException
68
+     */
69
+    public function loadSchemaFromFile($file, Schema $schema) {
70
+        $loadEntities = libxml_disable_entity_loader(false);
71
+        $xml = simplexml_load_file($file);
72
+        libxml_disable_entity_loader($loadEntities);
73
+        foreach ($xml->children() as $child) {
74
+            /**
75
+             * @var \SimpleXMLElement $child
76
+             */
77
+            switch ($child->getName()) {
78
+                case 'name':
79
+                case 'create':
80
+                case 'overwrite':
81
+                case 'charset':
82
+                    break;
83
+                case 'table':
84
+                    $this->loadTable($schema, $child);
85
+                    break;
86
+                default:
87
+                    throw new \DomainException('Unknown element: ' . $child->getName());
88 88
 
89
-			}
90
-		}
91
-		return $schema;
92
-	}
89
+            }
90
+        }
91
+        return $schema;
92
+    }
93 93
 
94
-	/**
95
-	 * @param \Doctrine\DBAL\Schema\Schema $schema
96
-	 * @param \SimpleXMLElement $xml
97
-	 * @throws \DomainException
98
-	 */
99
-	private function loadTable($schema, $xml) {
100
-		$table = null;
101
-		foreach ($xml->children() as $child) {
102
-			/**
103
-			 * @var \SimpleXMLElement $child
104
-			 */
105
-			switch ($child->getName()) {
106
-				case 'name':
107
-					$name = (string)$child;
108
-					$name = str_replace('*dbprefix*', $this->DBTABLEPREFIX, $name);
109
-					$name = $this->platform->quoteIdentifier($name);
110
-					$table = $schema->createTable($name);
111
-					break;
112
-				case 'create':
113
-				case 'overwrite':
114
-				case 'charset':
115
-					break;
116
-				case 'declaration':
117
-					if (is_null($table)) {
118
-						throw new \DomainException('Table declaration before table name');
119
-					}
120
-					$this->loadDeclaration($table, $child);
121
-					break;
122
-				default:
123
-					throw new \DomainException('Unknown element: ' . $child->getName());
94
+    /**
95
+     * @param \Doctrine\DBAL\Schema\Schema $schema
96
+     * @param \SimpleXMLElement $xml
97
+     * @throws \DomainException
98
+     */
99
+    private function loadTable($schema, $xml) {
100
+        $table = null;
101
+        foreach ($xml->children() as $child) {
102
+            /**
103
+             * @var \SimpleXMLElement $child
104
+             */
105
+            switch ($child->getName()) {
106
+                case 'name':
107
+                    $name = (string)$child;
108
+                    $name = str_replace('*dbprefix*', $this->DBTABLEPREFIX, $name);
109
+                    $name = $this->platform->quoteIdentifier($name);
110
+                    $table = $schema->createTable($name);
111
+                    break;
112
+                case 'create':
113
+                case 'overwrite':
114
+                case 'charset':
115
+                    break;
116
+                case 'declaration':
117
+                    if (is_null($table)) {
118
+                        throw new \DomainException('Table declaration before table name');
119
+                    }
120
+                    $this->loadDeclaration($table, $child);
121
+                    break;
122
+                default:
123
+                    throw new \DomainException('Unknown element: ' . $child->getName());
124 124
 
125
-			}
126
-		}
127
-	}
125
+            }
126
+        }
127
+    }
128 128
 
129
-	/**
130
-	 * @param \Doctrine\DBAL\Schema\Table $table
131
-	 * @param \SimpleXMLElement $xml
132
-	 * @throws \DomainException
133
-	 */
134
-	private function loadDeclaration($table, $xml) {
135
-		foreach ($xml->children() as $child) {
136
-			/**
137
-			 * @var \SimpleXMLElement $child
138
-			 */
139
-			switch ($child->getName()) {
140
-				case 'field':
141
-					$this->loadField($table, $child);
142
-					break;
143
-				case 'index':
144
-					$this->loadIndex($table, $child);
145
-					break;
146
-				default:
147
-					throw new \DomainException('Unknown element: ' . $child->getName());
129
+    /**
130
+     * @param \Doctrine\DBAL\Schema\Table $table
131
+     * @param \SimpleXMLElement $xml
132
+     * @throws \DomainException
133
+     */
134
+    private function loadDeclaration($table, $xml) {
135
+        foreach ($xml->children() as $child) {
136
+            /**
137
+             * @var \SimpleXMLElement $child
138
+             */
139
+            switch ($child->getName()) {
140
+                case 'field':
141
+                    $this->loadField($table, $child);
142
+                    break;
143
+                case 'index':
144
+                    $this->loadIndex($table, $child);
145
+                    break;
146
+                default:
147
+                    throw new \DomainException('Unknown element: ' . $child->getName());
148 148
 
149
-			}
150
-		}
151
-	}
149
+            }
150
+        }
151
+    }
152 152
 
153
-	/**
154
-	 * @param \Doctrine\DBAL\Schema\Table $table
155
-	 * @param \SimpleXMLElement $xml
156
-	 * @throws \DomainException
157
-	 */
158
-	private function loadField($table, $xml) {
159
-		$options = [ 'notnull' => false ];
160
-		foreach ($xml->children() as $child) {
161
-			/**
162
-			 * @var \SimpleXMLElement $child
163
-			 */
164
-			switch ($child->getName()) {
165
-				case 'name':
166
-					$name = (string)$child;
167
-					$name = $this->platform->quoteIdentifier($name);
168
-					break;
169
-				case 'type':
170
-					$type = (string)$child;
171
-					switch ($type) {
172
-						case 'text':
173
-							$type = 'string';
174
-							break;
175
-						case 'clob':
176
-							$type = 'text';
177
-							break;
178
-						case 'timestamp':
179
-							$type = 'datetime';
180
-							break;
181
-						case 'numeric':
182
-							$type = 'decimal';
183
-							break;
184
-					}
185
-					break;
186
-				case 'length':
187
-					$length = (string)$child;
188
-					$options['length'] = $length;
189
-					break;
190
-				case 'unsigned':
191
-					$unsigned = $this->asBool($child);
192
-					$options['unsigned'] = $unsigned;
193
-					break;
194
-				case 'notnull':
195
-					$notnull = $this->asBool($child);
196
-					$options['notnull'] = $notnull;
197
-					break;
198
-				case 'autoincrement':
199
-					$autoincrement = $this->asBool($child);
200
-					$options['autoincrement'] = $autoincrement;
201
-					break;
202
-				case 'default':
203
-					$default = (string)$child;
204
-					$options['default'] = $default;
205
-					break;
206
-				case 'comments':
207
-					$comment = (string)$child;
208
-					$options['comment'] = $comment;
209
-					break;
210
-				case 'primary':
211
-					$primary = $this->asBool($child);
212
-					$options['primary'] = $primary;
213
-					break;
214
-				case 'precision':
215
-					$precision = (string)$child;
216
-					$options['precision'] = $precision;
217
-					break;
218
-				case 'scale':
219
-					$scale = (string)$child;
220
-					$options['scale'] = $scale;
221
-					break;
222
-				default:
223
-					throw new \DomainException('Unknown element: ' . $child->getName());
153
+    /**
154
+     * @param \Doctrine\DBAL\Schema\Table $table
155
+     * @param \SimpleXMLElement $xml
156
+     * @throws \DomainException
157
+     */
158
+    private function loadField($table, $xml) {
159
+        $options = [ 'notnull' => false ];
160
+        foreach ($xml->children() as $child) {
161
+            /**
162
+             * @var \SimpleXMLElement $child
163
+             */
164
+            switch ($child->getName()) {
165
+                case 'name':
166
+                    $name = (string)$child;
167
+                    $name = $this->platform->quoteIdentifier($name);
168
+                    break;
169
+                case 'type':
170
+                    $type = (string)$child;
171
+                    switch ($type) {
172
+                        case 'text':
173
+                            $type = 'string';
174
+                            break;
175
+                        case 'clob':
176
+                            $type = 'text';
177
+                            break;
178
+                        case 'timestamp':
179
+                            $type = 'datetime';
180
+                            break;
181
+                        case 'numeric':
182
+                            $type = 'decimal';
183
+                            break;
184
+                    }
185
+                    break;
186
+                case 'length':
187
+                    $length = (string)$child;
188
+                    $options['length'] = $length;
189
+                    break;
190
+                case 'unsigned':
191
+                    $unsigned = $this->asBool($child);
192
+                    $options['unsigned'] = $unsigned;
193
+                    break;
194
+                case 'notnull':
195
+                    $notnull = $this->asBool($child);
196
+                    $options['notnull'] = $notnull;
197
+                    break;
198
+                case 'autoincrement':
199
+                    $autoincrement = $this->asBool($child);
200
+                    $options['autoincrement'] = $autoincrement;
201
+                    break;
202
+                case 'default':
203
+                    $default = (string)$child;
204
+                    $options['default'] = $default;
205
+                    break;
206
+                case 'comments':
207
+                    $comment = (string)$child;
208
+                    $options['comment'] = $comment;
209
+                    break;
210
+                case 'primary':
211
+                    $primary = $this->asBool($child);
212
+                    $options['primary'] = $primary;
213
+                    break;
214
+                case 'precision':
215
+                    $precision = (string)$child;
216
+                    $options['precision'] = $precision;
217
+                    break;
218
+                case 'scale':
219
+                    $scale = (string)$child;
220
+                    $options['scale'] = $scale;
221
+                    break;
222
+                default:
223
+                    throw new \DomainException('Unknown element: ' . $child->getName());
224 224
 
225
-			}
226
-		}
227
-		if (isset($name) && isset($type)) {
228
-			if (isset($options['default']) && empty($options['default'])) {
229
-				if (empty($options['notnull']) || !$options['notnull']) {
230
-					unset($options['default']);
231
-					$options['notnull'] = false;
232
-				} else {
233
-					$options['default'] = '';
234
-				}
235
-				if ($type == 'integer' || $type == 'decimal') {
236
-					$options['default'] = 0;
237
-				} elseif ($type == 'boolean') {
238
-					$options['default'] = false;
239
-				}
240
-				if (!empty($options['autoincrement']) && $options['autoincrement']) {
241
-					unset($options['default']);
242
-				}
243
-			}
244
-			if ($type === 'integer' && isset($options['default'])) {
245
-				$options['default'] = (int)$options['default'];
246
-			}
247
-			if ($type === 'integer' && isset($options['length'])) {
248
-				$length = $options['length'];
249
-				if ($length < 4) {
250
-					$type = 'smallint';
251
-				} elseif ($length > 4) {
252
-					$type = 'bigint';
253
-				}
254
-			}
255
-			if ($type === 'boolean' && isset($options['default'])) {
256
-				$options['default'] = $this->asBool($options['default']);
257
-			}
258
-			if (!empty($options['autoincrement'])
259
-				&& !empty($options['notnull'])
260
-			) {
261
-				$options['primary'] = true;
262
-			}
225
+            }
226
+        }
227
+        if (isset($name) && isset($type)) {
228
+            if (isset($options['default']) && empty($options['default'])) {
229
+                if (empty($options['notnull']) || !$options['notnull']) {
230
+                    unset($options['default']);
231
+                    $options['notnull'] = false;
232
+                } else {
233
+                    $options['default'] = '';
234
+                }
235
+                if ($type == 'integer' || $type == 'decimal') {
236
+                    $options['default'] = 0;
237
+                } elseif ($type == 'boolean') {
238
+                    $options['default'] = false;
239
+                }
240
+                if (!empty($options['autoincrement']) && $options['autoincrement']) {
241
+                    unset($options['default']);
242
+                }
243
+            }
244
+            if ($type === 'integer' && isset($options['default'])) {
245
+                $options['default'] = (int)$options['default'];
246
+            }
247
+            if ($type === 'integer' && isset($options['length'])) {
248
+                $length = $options['length'];
249
+                if ($length < 4) {
250
+                    $type = 'smallint';
251
+                } elseif ($length > 4) {
252
+                    $type = 'bigint';
253
+                }
254
+            }
255
+            if ($type === 'boolean' && isset($options['default'])) {
256
+                $options['default'] = $this->asBool($options['default']);
257
+            }
258
+            if (!empty($options['autoincrement'])
259
+                && !empty($options['notnull'])
260
+            ) {
261
+                $options['primary'] = true;
262
+            }
263 263
 
264
-			$table->addColumn($name, $type, $options);
265
-			if (!empty($options['primary']) && $options['primary']) {
266
-				$table->setPrimaryKey([$name]);
267
-			}
268
-		}
269
-	}
264
+            $table->addColumn($name, $type, $options);
265
+            if (!empty($options['primary']) && $options['primary']) {
266
+                $table->setPrimaryKey([$name]);
267
+            }
268
+        }
269
+    }
270 270
 
271
-	/**
272
-	 * @param \Doctrine\DBAL\Schema\Table $table
273
-	 * @param \SimpleXMLElement $xml
274
-	 * @throws \DomainException
275
-	 */
276
-	private function loadIndex($table, $xml) {
277
-		$name = null;
278
-		$fields = [];
279
-		foreach ($xml->children() as $child) {
280
-			/**
281
-			 * @var \SimpleXMLElement $child
282
-			 */
283
-			switch ($child->getName()) {
284
-				case 'name':
285
-					$name = (string)$child;
286
-					break;
287
-				case 'primary':
288
-					$primary = $this->asBool($child);
289
-					break;
290
-				case 'unique':
291
-					$unique = $this->asBool($child);
292
-					break;
293
-				case 'field':
294
-					foreach ($child->children() as $field) {
295
-						/**
296
-						 * @var \SimpleXMLElement $field
297
-						 */
298
-						switch ($field->getName()) {
299
-							case 'name':
300
-								$field_name = (string)$field;
301
-								$field_name = $this->platform->quoteIdentifier($field_name);
302
-								$fields[] = $field_name;
303
-								break;
304
-							case 'sorting':
305
-								break;
306
-							default:
307
-								throw new \DomainException('Unknown element: ' . $field->getName());
271
+    /**
272
+     * @param \Doctrine\DBAL\Schema\Table $table
273
+     * @param \SimpleXMLElement $xml
274
+     * @throws \DomainException
275
+     */
276
+    private function loadIndex($table, $xml) {
277
+        $name = null;
278
+        $fields = [];
279
+        foreach ($xml->children() as $child) {
280
+            /**
281
+             * @var \SimpleXMLElement $child
282
+             */
283
+            switch ($child->getName()) {
284
+                case 'name':
285
+                    $name = (string)$child;
286
+                    break;
287
+                case 'primary':
288
+                    $primary = $this->asBool($child);
289
+                    break;
290
+                case 'unique':
291
+                    $unique = $this->asBool($child);
292
+                    break;
293
+                case 'field':
294
+                    foreach ($child->children() as $field) {
295
+                        /**
296
+                         * @var \SimpleXMLElement $field
297
+                         */
298
+                        switch ($field->getName()) {
299
+                            case 'name':
300
+                                $field_name = (string)$field;
301
+                                $field_name = $this->platform->quoteIdentifier($field_name);
302
+                                $fields[] = $field_name;
303
+                                break;
304
+                            case 'sorting':
305
+                                break;
306
+                            default:
307
+                                throw new \DomainException('Unknown element: ' . $field->getName());
308 308
 
309
-						}
310
-					}
311
-					break;
312
-				default:
313
-					throw new \DomainException('Unknown element: ' . $child->getName());
309
+                        }
310
+                    }
311
+                    break;
312
+                default:
313
+                    throw new \DomainException('Unknown element: ' . $child->getName());
314 314
 
315
-			}
316
-		}
317
-		if (!empty($fields)) {
318
-			if (isset($primary) && $primary) {
319
-				if ($table->hasPrimaryKey()) {
320
-					return;
321
-				}
322
-				$table->setPrimaryKey($fields, $name);
323
-			} else {
324
-				if (isset($unique) && $unique) {
325
-					$table->addUniqueIndex($fields, $name);
326
-				} else {
327
-					$table->addIndex($fields, $name);
328
-				}
329
-			}
330
-		} else {
331
-			throw new \DomainException('Empty index definition: ' . $name . ' options:' . print_r($fields, true));
332
-		}
333
-	}
315
+            }
316
+        }
317
+        if (!empty($fields)) {
318
+            if (isset($primary) && $primary) {
319
+                if ($table->hasPrimaryKey()) {
320
+                    return;
321
+                }
322
+                $table->setPrimaryKey($fields, $name);
323
+            } else {
324
+                if (isset($unique) && $unique) {
325
+                    $table->addUniqueIndex($fields, $name);
326
+                } else {
327
+                    $table->addIndex($fields, $name);
328
+                }
329
+            }
330
+        } else {
331
+            throw new \DomainException('Empty index definition: ' . $name . ' options:' . print_r($fields, true));
332
+        }
333
+    }
334 334
 
335
-	/**
336
-	 * @param \SimpleXMLElement|string $xml
337
-	 * @return bool
338
-	 */
339
-	private function asBool($xml) {
340
-		$result = (string)$xml;
341
-		if ($result == 'true') {
342
-			$result = true;
343
-		} elseif ($result == 'false') {
344
-			$result = false;
345
-		}
346
-		return (bool)$result;
347
-	}
335
+    /**
336
+     * @param \SimpleXMLElement|string $xml
337
+     * @return bool
338
+     */
339
+    private function asBool($xml) {
340
+        $result = (string)$xml;
341
+        if ($result == 'true') {
342
+            $result = true;
343
+        } elseif ($result == 'false') {
344
+            $result = false;
345
+        }
346
+        return (bool)$result;
347
+    }
348 348
 }
Please login to merge, or discard this patch.
lib/private/DB/MDB2SchemaWriter.php 1 patch
Indentation   +138 added lines, -138 removed lines patch added patch discarded remove patch
@@ -31,150 +31,150 @@
 block discarded – undo
31 31
 
32 32
 class MDB2SchemaWriter {
33 33
 
34
-	/**
35
-	 * @param string $file
36
-	 * @param \OC\DB\Connection $conn
37
-	 * @return bool
38
-	 */
39
-	public static function saveSchemaToFile($file, \OC\DB\Connection $conn) {
40
-		$config = \OC::$server->getConfig();
34
+    /**
35
+     * @param string $file
36
+     * @param \OC\DB\Connection $conn
37
+     * @return bool
38
+     */
39
+    public static function saveSchemaToFile($file, \OC\DB\Connection $conn) {
40
+        $config = \OC::$server->getConfig();
41 41
 
42
-		$xml = new \SimpleXMLElement('<database/>');
43
-		$xml->addChild('name', $config->getSystemValue('dbname', 'owncloud'));
44
-		$xml->addChild('create', 'true');
45
-		$xml->addChild('overwrite', 'false');
46
-		if ($config->getSystemValue('dbtype', 'sqlite') === 'mysql' && $config->getSystemValue('mysql.utf8mb4', false)) {
47
-			$xml->addChild('charset', 'utf8mb4');
48
-		} else {
49
-			$xml->addChild('charset', 'utf8');
50
-		}
42
+        $xml = new \SimpleXMLElement('<database/>');
43
+        $xml->addChild('name', $config->getSystemValue('dbname', 'owncloud'));
44
+        $xml->addChild('create', 'true');
45
+        $xml->addChild('overwrite', 'false');
46
+        if ($config->getSystemValue('dbtype', 'sqlite') === 'mysql' && $config->getSystemValue('mysql.utf8mb4', false)) {
47
+            $xml->addChild('charset', 'utf8mb4');
48
+        } else {
49
+            $xml->addChild('charset', 'utf8');
50
+        }
51 51
 
52
-		// FIX ME: bloody work around
53
-		if ($config->getSystemValue('dbtype', 'sqlite') === 'oci') {
54
-			$filterExpression = '/^"' . preg_quote($conn->getPrefix()) . '/';
55
-		} else {
56
-			$filterExpression = '/^' . preg_quote($conn->getPrefix()) . '/';
57
-		}
58
-		$conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
52
+        // FIX ME: bloody work around
53
+        if ($config->getSystemValue('dbtype', 'sqlite') === 'oci') {
54
+            $filterExpression = '/^"' . preg_quote($conn->getPrefix()) . '/';
55
+        } else {
56
+            $filterExpression = '/^' . preg_quote($conn->getPrefix()) . '/';
57
+        }
58
+        $conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
59 59
 
60
-		foreach ($conn->getSchemaManager()->listTables() as $table) {
61
-			self::saveTable($table, $xml->addChild('table'));
62
-		}
63
-		file_put_contents($file, $xml->asXML());
64
-		return true;
65
-	}
60
+        foreach ($conn->getSchemaManager()->listTables() as $table) {
61
+            self::saveTable($table, $xml->addChild('table'));
62
+        }
63
+        file_put_contents($file, $xml->asXML());
64
+        return true;
65
+    }
66 66
 
67
-	/**
68
-	 * @param \Doctrine\DBAL\Schema\Table $table
69
-	 * @param \SimpleXMLElement $xml
70
-	 */
71
-	private static function saveTable($table, $xml) {
72
-		$xml->addChild('name', $table->getName());
73
-		$declaration = $xml->addChild('declaration');
74
-		foreach ($table->getColumns() as $column) {
75
-			self::saveColumn($column, $declaration->addChild('field'));
76
-		}
77
-		foreach ($table->getIndexes() as $index) {
78
-			if ($index->getName() == 'PRIMARY') {
79
-				$autoincrement = false;
80
-				foreach ($index->getColumns() as $column) {
81
-					if ($table->getColumn($column)->getAutoincrement()) {
82
-						$autoincrement = true;
83
-					}
84
-				}
85
-				if ($autoincrement) {
86
-					continue;
87
-				}
88
-			}
89
-			self::saveIndex($index, $declaration->addChild('index'));
90
-		}
91
-	}
67
+    /**
68
+     * @param \Doctrine\DBAL\Schema\Table $table
69
+     * @param \SimpleXMLElement $xml
70
+     */
71
+    private static function saveTable($table, $xml) {
72
+        $xml->addChild('name', $table->getName());
73
+        $declaration = $xml->addChild('declaration');
74
+        foreach ($table->getColumns() as $column) {
75
+            self::saveColumn($column, $declaration->addChild('field'));
76
+        }
77
+        foreach ($table->getIndexes() as $index) {
78
+            if ($index->getName() == 'PRIMARY') {
79
+                $autoincrement = false;
80
+                foreach ($index->getColumns() as $column) {
81
+                    if ($table->getColumn($column)->getAutoincrement()) {
82
+                        $autoincrement = true;
83
+                    }
84
+                }
85
+                if ($autoincrement) {
86
+                    continue;
87
+                }
88
+            }
89
+            self::saveIndex($index, $declaration->addChild('index'));
90
+        }
91
+    }
92 92
 
93
-	/**
94
-	 * @param Column $column
95
-	 * @param \SimpleXMLElement $xml
96
-	 */
97
-	private static function saveColumn($column, $xml) {
98
-		$xml->addChild('name', $column->getName());
99
-		switch ($column->getType()) {
100
-			case 'SmallInt':
101
-			case 'Integer':
102
-			case 'BigInt':
103
-				$xml->addChild('type', 'integer');
104
-				$default = $column->getDefault();
105
-				if (is_null($default) && $column->getAutoincrement()) {
106
-					$default = '0';
107
-				}
108
-				$xml->addChild('default', $default);
109
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
110
-				if ($column->getAutoincrement()) {
111
-					$xml->addChild('autoincrement', '1');
112
-				}
113
-				if ($column->getUnsigned()) {
114
-					$xml->addChild('unsigned', 'true');
115
-				}
116
-				$length = '4';
117
-				if ($column->getType() == 'SmallInt') {
118
-					$length = '2';
119
-				} elseif ($column->getType() == 'BigInt') {
120
-					$length = '8';
121
-				}
122
-				$xml->addChild('length', $length);
123
-				break;
124
-			case 'String':
125
-				$xml->addChild('type', 'text');
126
-				$default = trim($column->getDefault());
127
-				if ($default === '') {
128
-					$default = false;
129
-				}
130
-				$xml->addChild('default', $default);
131
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
132
-				$xml->addChild('length', $column->getLength());
133
-				break;
134
-			case 'Text':
135
-				$xml->addChild('type', 'clob');
136
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
137
-				break;
138
-			case 'Decimal':
139
-				$xml->addChild('type', 'decimal');
140
-				$xml->addChild('default', $column->getDefault());
141
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
142
-				$xml->addChild('length', '15');
143
-				break;
144
-			case 'Boolean':
145
-				$xml->addChild('type', 'integer');
146
-				$xml->addChild('default', $column->getDefault());
147
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
148
-				$xml->addChild('length', '1');
149
-				break;
150
-			case 'DateTime':
151
-				$xml->addChild('type', 'timestamp');
152
-				$xml->addChild('default', $column->getDefault());
153
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
154
-				break;
93
+    /**
94
+     * @param Column $column
95
+     * @param \SimpleXMLElement $xml
96
+     */
97
+    private static function saveColumn($column, $xml) {
98
+        $xml->addChild('name', $column->getName());
99
+        switch ($column->getType()) {
100
+            case 'SmallInt':
101
+            case 'Integer':
102
+            case 'BigInt':
103
+                $xml->addChild('type', 'integer');
104
+                $default = $column->getDefault();
105
+                if (is_null($default) && $column->getAutoincrement()) {
106
+                    $default = '0';
107
+                }
108
+                $xml->addChild('default', $default);
109
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
110
+                if ($column->getAutoincrement()) {
111
+                    $xml->addChild('autoincrement', '1');
112
+                }
113
+                if ($column->getUnsigned()) {
114
+                    $xml->addChild('unsigned', 'true');
115
+                }
116
+                $length = '4';
117
+                if ($column->getType() == 'SmallInt') {
118
+                    $length = '2';
119
+                } elseif ($column->getType() == 'BigInt') {
120
+                    $length = '8';
121
+                }
122
+                $xml->addChild('length', $length);
123
+                break;
124
+            case 'String':
125
+                $xml->addChild('type', 'text');
126
+                $default = trim($column->getDefault());
127
+                if ($default === '') {
128
+                    $default = false;
129
+                }
130
+                $xml->addChild('default', $default);
131
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
132
+                $xml->addChild('length', $column->getLength());
133
+                break;
134
+            case 'Text':
135
+                $xml->addChild('type', 'clob');
136
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
137
+                break;
138
+            case 'Decimal':
139
+                $xml->addChild('type', 'decimal');
140
+                $xml->addChild('default', $column->getDefault());
141
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
142
+                $xml->addChild('length', '15');
143
+                break;
144
+            case 'Boolean':
145
+                $xml->addChild('type', 'integer');
146
+                $xml->addChild('default', $column->getDefault());
147
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
148
+                $xml->addChild('length', '1');
149
+                break;
150
+            case 'DateTime':
151
+                $xml->addChild('type', 'timestamp');
152
+                $xml->addChild('default', $column->getDefault());
153
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
154
+                break;
155 155
 
156
-		}
157
-	}
156
+        }
157
+    }
158 158
 
159
-	/**
160
-	 * @param Index $index
161
-	 * @param \SimpleXMLElement $xml
162
-	 */
163
-	private static function saveIndex($index, $xml) {
164
-		$xml->addChild('name', $index->getName());
165
-		if ($index->isPrimary()) {
166
-			$xml->addChild('primary', 'true');
167
-		} elseif ($index->isUnique()) {
168
-			$xml->addChild('unique', 'true');
169
-		}
170
-		foreach ($index->getColumns() as $column) {
171
-			$field = $xml->addChild('field');
172
-			$field->addChild('name', $column);
173
-			$field->addChild('sorting', 'ascending');
174
-		}
175
-	}
159
+    /**
160
+     * @param Index $index
161
+     * @param \SimpleXMLElement $xml
162
+     */
163
+    private static function saveIndex($index, $xml) {
164
+        $xml->addChild('name', $index->getName());
165
+        if ($index->isPrimary()) {
166
+            $xml->addChild('primary', 'true');
167
+        } elseif ($index->isUnique()) {
168
+            $xml->addChild('unique', 'true');
169
+        }
170
+        foreach ($index->getColumns() as $column) {
171
+            $field = $xml->addChild('field');
172
+            $field->addChild('name', $column);
173
+            $field->addChild('sorting', 'ascending');
174
+        }
175
+    }
176 176
 
177
-	private static function toBool($bool) {
178
-		return $bool ? 'true' : 'false';
179
-	}
177
+    private static function toBool($bool) {
178
+        return $bool ? 'true' : 'false';
179
+    }
180 180
 }
Please login to merge, or discard this patch.
lib/private/DB/SQLiteMigrator.php 1 patch
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -32,62 +32,62 @@
 block discarded – undo
32 32
 
33 33
 class SQLiteMigrator extends Migrator {
34 34
 
35
-	/**
36
-	 * @param \Doctrine\DBAL\Schema\Schema $targetSchema
37
-	 * @throws \OC\DB\MigrationException
38
-	 *
39
-	 * For sqlite we simple make a copy of the entire database, and test the migration on that
40
-	 */
41
-	public function checkMigrate(\Doctrine\DBAL\Schema\Schema $targetSchema) {
42
-		$dbFile = $this->connection->getDatabase();
43
-		$tmpFile = $this->buildTempDatabase();
44
-		copy($dbFile, $tmpFile);
35
+    /**
36
+     * @param \Doctrine\DBAL\Schema\Schema $targetSchema
37
+     * @throws \OC\DB\MigrationException
38
+     *
39
+     * For sqlite we simple make a copy of the entire database, and test the migration on that
40
+     */
41
+    public function checkMigrate(\Doctrine\DBAL\Schema\Schema $targetSchema) {
42
+        $dbFile = $this->connection->getDatabase();
43
+        $tmpFile = $this->buildTempDatabase();
44
+        copy($dbFile, $tmpFile);
45 45
 
46
-		$connectionParams = [
47
-			'path' => $tmpFile,
48
-			'driver' => 'pdo_sqlite',
49
-		];
50
-		$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams);
51
-		try {
52
-			$this->applySchema($targetSchema, $conn);
53
-			$conn->close();
54
-			unlink($tmpFile);
55
-		} catch (DBALException $e) {
56
-			$conn->close();
57
-			unlink($tmpFile);
58
-			throw new MigrationException('', $e->getMessage());
59
-		}
60
-	}
46
+        $connectionParams = [
47
+            'path' => $tmpFile,
48
+            'driver' => 'pdo_sqlite',
49
+        ];
50
+        $conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams);
51
+        try {
52
+            $this->applySchema($targetSchema, $conn);
53
+            $conn->close();
54
+            unlink($tmpFile);
55
+        } catch (DBALException $e) {
56
+            $conn->close();
57
+            unlink($tmpFile);
58
+            throw new MigrationException('', $e->getMessage());
59
+        }
60
+    }
61 61
 
62
-	/**
63
-	 * @return string
64
-	 */
65
-	private function buildTempDatabase() {
66
-		$dataDir = $this->config->getSystemValue("datadirectory", \OC::$SERVERROOT . '/data');
67
-		$tmpFile = uniqid("oc_");
68
-		return "$dataDir/$tmpFile.db";
69
-	}
62
+    /**
63
+     * @return string
64
+     */
65
+    private function buildTempDatabase() {
66
+        $dataDir = $this->config->getSystemValue("datadirectory", \OC::$SERVERROOT . '/data');
67
+        $tmpFile = uniqid("oc_");
68
+        return "$dataDir/$tmpFile.db";
69
+    }
70 70
 
71
-	/**
72
-	 * @param Schema $targetSchema
73
-	 * @param \Doctrine\DBAL\Connection $connection
74
-	 * @return \Doctrine\DBAL\Schema\SchemaDiff
75
-	 */
76
-	protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
77
-		$platform = $connection->getDatabasePlatform();
78
-		$platform->registerDoctrineTypeMapping('tinyint unsigned', 'integer');
79
-		$platform->registerDoctrineTypeMapping('smallint unsigned', 'integer');
80
-		$platform->registerDoctrineTypeMapping('varchar ', 'string');
71
+    /**
72
+     * @param Schema $targetSchema
73
+     * @param \Doctrine\DBAL\Connection $connection
74
+     * @return \Doctrine\DBAL\Schema\SchemaDiff
75
+     */
76
+    protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
77
+        $platform = $connection->getDatabasePlatform();
78
+        $platform->registerDoctrineTypeMapping('tinyint unsigned', 'integer');
79
+        $platform->registerDoctrineTypeMapping('smallint unsigned', 'integer');
80
+        $platform->registerDoctrineTypeMapping('varchar ', 'string');
81 81
 
82
-		// with sqlite autoincrement columns is of type integer
83
-		foreach ($targetSchema->getTables() as $table) {
84
-			foreach ($table->getColumns() as $column) {
85
-				if ($column->getType() instanceof BigIntType && $column->getAutoincrement()) {
86
-					$column->setType(Type::getType('integer'));
87
-				}
88
-			}
89
-		}
82
+        // with sqlite autoincrement columns is of type integer
83
+        foreach ($targetSchema->getTables() as $table) {
84
+            foreach ($table->getColumns() as $column) {
85
+                if ($column->getType() instanceof BigIntType && $column->getAutoincrement()) {
86
+                    $column->setType(Type::getType('integer'));
87
+                }
88
+            }
89
+        }
90 90
 
91
-		return parent::getDiff($targetSchema, $connection);
92
-	}
91
+        return parent::getDiff($targetSchema, $connection);
92
+    }
93 93
 }
Please login to merge, or discard this patch.
lib/private/Command/FileAccess.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -25,12 +25,12 @@
 block discarded – undo
25 25
 use OCP\IUser;
26 26
 
27 27
 trait FileAccess {
28
-	protected function setupFS(IUser $user) {
29
-		\OC_Util::setupFS($user->getUID());
30
-	}
28
+    protected function setupFS(IUser $user) {
29
+        \OC_Util::setupFS($user->getUID());
30
+    }
31 31
 
32
-	protected function getUserFolder(IUser $user) {
33
-		$this->setupFS($user);
34
-		return \OC::$server->getUserFolder($user->getUID());
35
-	}
32
+    protected function getUserFolder(IUser $user) {
33
+        $this->setupFS($user);
34
+        return \OC::$server->getUserFolder($user->getUID());
35
+    }
36 36
 }
Please login to merge, or discard this patch.
lib/private/Memcache/Memcached.php 1 patch
Indentation   +189 added lines, -189 removed lines patch added patch discarded remove patch
@@ -33,193 +33,193 @@
 block discarded – undo
33 33
 use OCP\IMemcache;
34 34
 
35 35
 class Memcached extends Cache implements IMemcache {
36
-	use CASTrait;
37
-
38
-	/**
39
-	 * @var \Memcached $cache
40
-	 */
41
-	private static $cache = null;
42
-
43
-	use CADTrait;
44
-
45
-	public function __construct($prefix = '') {
46
-		parent::__construct($prefix);
47
-		if (is_null(self::$cache)) {
48
-			self::$cache = new \Memcached();
49
-
50
-			$defaultOptions = [
51
-				\Memcached::OPT_CONNECT_TIMEOUT => 50,
52
-				\Memcached::OPT_RETRY_TIMEOUT => 50,
53
-				\Memcached::OPT_SEND_TIMEOUT => 50,
54
-				\Memcached::OPT_RECV_TIMEOUT => 50,
55
-				\Memcached::OPT_POLL_TIMEOUT => 50,
56
-
57
-				// Enable compression
58
-				\Memcached::OPT_COMPRESSION => true,
59
-
60
-				// Turn on consistent hashing
61
-				\Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
62
-
63
-				// Enable Binary Protocol
64
-				//\Memcached::OPT_BINARY_PROTOCOL =>      true,
65
-			];
66
-			// by default enable igbinary serializer if available
67
-			if (\Memcached::HAVE_IGBINARY) {
68
-				$defaultOptions[\Memcached::OPT_SERIALIZER] =
69
-					\Memcached::SERIALIZER_IGBINARY;
70
-			}
71
-			$options = \OC::$server->getConfig()->getSystemValue('memcached_options', []);
72
-			if (is_array($options)) {
73
-				$options = $options + $defaultOptions;
74
-				self::$cache->setOptions($options);
75
-			} else {
76
-				throw new HintException("Expected 'memcached_options' config to be an array, got $options");
77
-			}
78
-
79
-			$servers = \OC::$server->getSystemConfig()->getValue('memcached_servers');
80
-			if (!$servers) {
81
-				$server = \OC::$server->getSystemConfig()->getValue('memcached_server');
82
-				if ($server) {
83
-					$servers = [$server];
84
-				} else {
85
-					$servers = [['localhost', 11211]];
86
-				}
87
-			}
88
-			self::$cache->addServers($servers);
89
-		}
90
-	}
91
-
92
-	/**
93
-	 * entries in XCache gets namespaced to prevent collisions between owncloud instances and users
94
-	 */
95
-	protected function getNameSpace() {
96
-		return $this->prefix;
97
-	}
98
-
99
-	public function get($key) {
100
-		$result = self::$cache->get($this->getNameSpace() . $key);
101
-		if ($result === false and self::$cache->getResultCode() == \Memcached::RES_NOTFOUND) {
102
-			return null;
103
-		} else {
104
-			return $result;
105
-		}
106
-	}
107
-
108
-	public function set($key, $value, $ttl = 0) {
109
-		if ($ttl > 0) {
110
-			$result = self::$cache->set($this->getNameSpace() . $key, $value, $ttl);
111
-		} else {
112
-			$result = self::$cache->set($this->getNameSpace() . $key, $value);
113
-		}
114
-		if ($result !== true) {
115
-			$this->verifyReturnCode();
116
-		}
117
-		return $result;
118
-	}
119
-
120
-	public function hasKey($key) {
121
-		self::$cache->get($this->getNameSpace() . $key);
122
-		return self::$cache->getResultCode() === \Memcached::RES_SUCCESS;
123
-	}
124
-
125
-	public function remove($key) {
126
-		$result = self::$cache->delete($this->getNameSpace() . $key);
127
-		if (self::$cache->getResultCode() !== \Memcached::RES_NOTFOUND) {
128
-			$this->verifyReturnCode();
129
-		}
130
-		return $result;
131
-	}
132
-
133
-	public function clear($prefix = '') {
134
-		$prefix = $this->getNameSpace() . $prefix;
135
-		$allKeys = self::$cache->getAllKeys();
136
-		if ($allKeys === false) {
137
-			// newer Memcached doesn't like getAllKeys(), flush everything
138
-			self::$cache->flush();
139
-			return true;
140
-		}
141
-		$keys = [];
142
-		$prefixLength = strlen($prefix);
143
-		foreach ($allKeys as $key) {
144
-			if (substr($key, 0, $prefixLength) === $prefix) {
145
-				$keys[] = $key;
146
-			}
147
-		}
148
-		if (method_exists(self::$cache, 'deleteMulti')) {
149
-			self::$cache->deleteMulti($keys);
150
-		} else {
151
-			foreach ($keys as $key) {
152
-				self::$cache->delete($key);
153
-			}
154
-		}
155
-		return true;
156
-	}
157
-
158
-	/**
159
-	 * Set a value in the cache if it's not already stored
160
-	 *
161
-	 * @param string $key
162
-	 * @param mixed $value
163
-	 * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
164
-	 * @return bool
165
-	 * @throws \Exception
166
-	 */
167
-	public function add($key, $value, $ttl = 0) {
168
-		$result = self::$cache->add($this->getPrefix() . $key, $value, $ttl);
169
-		if (self::$cache->getResultCode() !== \Memcached::RES_NOTSTORED) {
170
-			$this->verifyReturnCode();
171
-		}
172
-		return $result;
173
-	}
174
-
175
-	/**
176
-	 * Increase a stored number
177
-	 *
178
-	 * @param string $key
179
-	 * @param int $step
180
-	 * @return int | bool
181
-	 */
182
-	public function inc($key, $step = 1) {
183
-		$this->add($key, 0);
184
-		$result = self::$cache->increment($this->getPrefix() . $key, $step);
185
-
186
-		if (self::$cache->getResultCode() !== \Memcached::RES_SUCCESS) {
187
-			return false;
188
-		}
189
-
190
-		return $result;
191
-	}
192
-
193
-	/**
194
-	 * Decrease a stored number
195
-	 *
196
-	 * @param string $key
197
-	 * @param int $step
198
-	 * @return int | bool
199
-	 */
200
-	public function dec($key, $step = 1) {
201
-		$result = self::$cache->decrement($this->getPrefix() . $key, $step);
202
-
203
-		if (self::$cache->getResultCode() !== \Memcached::RES_SUCCESS) {
204
-			return false;
205
-		}
206
-
207
-		return $result;
208
-	}
209
-
210
-	public static function isAvailable() {
211
-		return extension_loaded('memcached');
212
-	}
213
-
214
-	/**
215
-	 * @throws \Exception
216
-	 */
217
-	private function verifyReturnCode() {
218
-		$code = self::$cache->getResultCode();
219
-		if ($code === \Memcached::RES_SUCCESS) {
220
-			return;
221
-		}
222
-		$message = self::$cache->getResultMessage();
223
-		throw new \Exception("Error $code interacting with memcached : $message");
224
-	}
36
+    use CASTrait;
37
+
38
+    /**
39
+     * @var \Memcached $cache
40
+     */
41
+    private static $cache = null;
42
+
43
+    use CADTrait;
44
+
45
+    public function __construct($prefix = '') {
46
+        parent::__construct($prefix);
47
+        if (is_null(self::$cache)) {
48
+            self::$cache = new \Memcached();
49
+
50
+            $defaultOptions = [
51
+                \Memcached::OPT_CONNECT_TIMEOUT => 50,
52
+                \Memcached::OPT_RETRY_TIMEOUT => 50,
53
+                \Memcached::OPT_SEND_TIMEOUT => 50,
54
+                \Memcached::OPT_RECV_TIMEOUT => 50,
55
+                \Memcached::OPT_POLL_TIMEOUT => 50,
56
+
57
+                // Enable compression
58
+                \Memcached::OPT_COMPRESSION => true,
59
+
60
+                // Turn on consistent hashing
61
+                \Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
62
+
63
+                // Enable Binary Protocol
64
+                //\Memcached::OPT_BINARY_PROTOCOL =>      true,
65
+            ];
66
+            // by default enable igbinary serializer if available
67
+            if (\Memcached::HAVE_IGBINARY) {
68
+                $defaultOptions[\Memcached::OPT_SERIALIZER] =
69
+                    \Memcached::SERIALIZER_IGBINARY;
70
+            }
71
+            $options = \OC::$server->getConfig()->getSystemValue('memcached_options', []);
72
+            if (is_array($options)) {
73
+                $options = $options + $defaultOptions;
74
+                self::$cache->setOptions($options);
75
+            } else {
76
+                throw new HintException("Expected 'memcached_options' config to be an array, got $options");
77
+            }
78
+
79
+            $servers = \OC::$server->getSystemConfig()->getValue('memcached_servers');
80
+            if (!$servers) {
81
+                $server = \OC::$server->getSystemConfig()->getValue('memcached_server');
82
+                if ($server) {
83
+                    $servers = [$server];
84
+                } else {
85
+                    $servers = [['localhost', 11211]];
86
+                }
87
+            }
88
+            self::$cache->addServers($servers);
89
+        }
90
+    }
91
+
92
+    /**
93
+     * entries in XCache gets namespaced to prevent collisions between owncloud instances and users
94
+     */
95
+    protected function getNameSpace() {
96
+        return $this->prefix;
97
+    }
98
+
99
+    public function get($key) {
100
+        $result = self::$cache->get($this->getNameSpace() . $key);
101
+        if ($result === false and self::$cache->getResultCode() == \Memcached::RES_NOTFOUND) {
102
+            return null;
103
+        } else {
104
+            return $result;
105
+        }
106
+    }
107
+
108
+    public function set($key, $value, $ttl = 0) {
109
+        if ($ttl > 0) {
110
+            $result = self::$cache->set($this->getNameSpace() . $key, $value, $ttl);
111
+        } else {
112
+            $result = self::$cache->set($this->getNameSpace() . $key, $value);
113
+        }
114
+        if ($result !== true) {
115
+            $this->verifyReturnCode();
116
+        }
117
+        return $result;
118
+    }
119
+
120
+    public function hasKey($key) {
121
+        self::$cache->get($this->getNameSpace() . $key);
122
+        return self::$cache->getResultCode() === \Memcached::RES_SUCCESS;
123
+    }
124
+
125
+    public function remove($key) {
126
+        $result = self::$cache->delete($this->getNameSpace() . $key);
127
+        if (self::$cache->getResultCode() !== \Memcached::RES_NOTFOUND) {
128
+            $this->verifyReturnCode();
129
+        }
130
+        return $result;
131
+    }
132
+
133
+    public function clear($prefix = '') {
134
+        $prefix = $this->getNameSpace() . $prefix;
135
+        $allKeys = self::$cache->getAllKeys();
136
+        if ($allKeys === false) {
137
+            // newer Memcached doesn't like getAllKeys(), flush everything
138
+            self::$cache->flush();
139
+            return true;
140
+        }
141
+        $keys = [];
142
+        $prefixLength = strlen($prefix);
143
+        foreach ($allKeys as $key) {
144
+            if (substr($key, 0, $prefixLength) === $prefix) {
145
+                $keys[] = $key;
146
+            }
147
+        }
148
+        if (method_exists(self::$cache, 'deleteMulti')) {
149
+            self::$cache->deleteMulti($keys);
150
+        } else {
151
+            foreach ($keys as $key) {
152
+                self::$cache->delete($key);
153
+            }
154
+        }
155
+        return true;
156
+    }
157
+
158
+    /**
159
+     * Set a value in the cache if it's not already stored
160
+     *
161
+     * @param string $key
162
+     * @param mixed $value
163
+     * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
164
+     * @return bool
165
+     * @throws \Exception
166
+     */
167
+    public function add($key, $value, $ttl = 0) {
168
+        $result = self::$cache->add($this->getPrefix() . $key, $value, $ttl);
169
+        if (self::$cache->getResultCode() !== \Memcached::RES_NOTSTORED) {
170
+            $this->verifyReturnCode();
171
+        }
172
+        return $result;
173
+    }
174
+
175
+    /**
176
+     * Increase a stored number
177
+     *
178
+     * @param string $key
179
+     * @param int $step
180
+     * @return int | bool
181
+     */
182
+    public function inc($key, $step = 1) {
183
+        $this->add($key, 0);
184
+        $result = self::$cache->increment($this->getPrefix() . $key, $step);
185
+
186
+        if (self::$cache->getResultCode() !== \Memcached::RES_SUCCESS) {
187
+            return false;
188
+        }
189
+
190
+        return $result;
191
+    }
192
+
193
+    /**
194
+     * Decrease a stored number
195
+     *
196
+     * @param string $key
197
+     * @param int $step
198
+     * @return int | bool
199
+     */
200
+    public function dec($key, $step = 1) {
201
+        $result = self::$cache->decrement($this->getPrefix() . $key, $step);
202
+
203
+        if (self::$cache->getResultCode() !== \Memcached::RES_SUCCESS) {
204
+            return false;
205
+        }
206
+
207
+        return $result;
208
+    }
209
+
210
+    public static function isAvailable() {
211
+        return extension_loaded('memcached');
212
+    }
213
+
214
+    /**
215
+     * @throws \Exception
216
+     */
217
+    private function verifyReturnCode() {
218
+        $code = self::$cache->getResultCode();
219
+        if ($code === \Memcached::RES_SUCCESS) {
220
+            return;
221
+        }
222
+        $message = self::$cache->getResultMessage();
223
+        throw new \Exception("Error $code interacting with memcached : $message");
224
+    }
225 225
 }
Please login to merge, or discard this patch.
lib/private/Memcache/NullCache.php 1 patch
Indentation   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -27,47 +27,47 @@
 block discarded – undo
27 27
 namespace OC\Memcache;
28 28
 
29 29
 class NullCache extends Cache implements \OCP\IMemcache {
30
-	public function get($key) {
31
-		return null;
32
-	}
30
+    public function get($key) {
31
+        return null;
32
+    }
33 33
 
34
-	public function set($key, $value, $ttl = 0) {
35
-		return true;
36
-	}
34
+    public function set($key, $value, $ttl = 0) {
35
+        return true;
36
+    }
37 37
 
38
-	public function hasKey($key) {
39
-		return false;
40
-	}
38
+    public function hasKey($key) {
39
+        return false;
40
+    }
41 41
 
42
-	public function remove($key) {
43
-		return true;
44
-	}
42
+    public function remove($key) {
43
+        return true;
44
+    }
45 45
 
46
-	public function add($key, $value, $ttl = 0) {
47
-		return true;
48
-	}
46
+    public function add($key, $value, $ttl = 0) {
47
+        return true;
48
+    }
49 49
 
50
-	public function inc($key, $step = 1) {
51
-		return true;
52
-	}
50
+    public function inc($key, $step = 1) {
51
+        return true;
52
+    }
53 53
 
54
-	public function dec($key, $step = 1) {
55
-		return true;
56
-	}
54
+    public function dec($key, $step = 1) {
55
+        return true;
56
+    }
57 57
 
58
-	public function cas($key, $old, $new) {
59
-		return true;
60
-	}
58
+    public function cas($key, $old, $new) {
59
+        return true;
60
+    }
61 61
 
62
-	public function cad($key, $old) {
63
-		return true;
64
-	}
62
+    public function cad($key, $old) {
63
+        return true;
64
+    }
65 65
 
66
-	public function clear($prefix = '') {
67
-		return true;
68
-	}
66
+    public function clear($prefix = '') {
67
+        return true;
68
+    }
69 69
 
70
-	public static function isAvailable() {
71
-		return true;
72
-	}
70
+    public static function isAvailable() {
71
+        return true;
72
+    }
73 73
 }
Please login to merge, or discard this patch.
lib/private/Contacts/ContactsMenu/Entry.php 1 patch
Indentation   +136 added lines, -136 removed lines patch added patch discarded remove patch
@@ -29,140 +29,140 @@
 block discarded – undo
29 29
 
30 30
 class Entry implements IEntry {
31 31
 
32
-	/** @var string|int|null */
33
-	private $id = null;
34
-
35
-	/** @var string */
36
-	private $fullName = '';
37
-
38
-	/** @var string[] */
39
-	private $emailAddresses = [];
40
-
41
-	/** @var string|null */
42
-	private $avatar;
43
-
44
-	/** @var IAction[] */
45
-	private $actions = [];
46
-
47
-	/** @var array */
48
-	private $properties = [];
49
-
50
-	/**
51
-	 * @param string $id
52
-	 */
53
-	public function setId($id) {
54
-		$this->id = $id;
55
-	}
56
-
57
-	/**
58
-	 * @param string $displayName
59
-	 */
60
-	public function setFullName($displayName) {
61
-		$this->fullName = $displayName;
62
-	}
63
-
64
-	/**
65
-	 * @return string
66
-	 */
67
-	public function getFullName() {
68
-		return $this->fullName;
69
-	}
70
-
71
-	/**
72
-	 * @param string $address
73
-	 */
74
-	public function addEMailAddress($address) {
75
-		$this->emailAddresses[] = $address;
76
-	}
77
-
78
-	/**
79
-	 * @return string
80
-	 */
81
-	public function getEMailAddresses() {
82
-		return $this->emailAddresses;
83
-	}
84
-
85
-	/**
86
-	 * @param string $avatar
87
-	 */
88
-	public function setAvatar($avatar) {
89
-		$this->avatar = $avatar;
90
-	}
91
-
92
-	/**
93
-	 * @return string
94
-	 */
95
-	public function getAvatar() {
96
-		return $this->avatar;
97
-	}
98
-
99
-	/**
100
-	 * @param IAction $action
101
-	 */
102
-	public function addAction(IAction $action) {
103
-		$this->actions[] = $action;
104
-		$this->sortActions();
105
-	}
106
-
107
-	/**
108
-	 * @return IAction[]
109
-	 */
110
-	public function getActions() {
111
-		return $this->actions;
112
-	}
113
-
114
-	/**
115
-	 * sort the actions by priority and name
116
-	 */
117
-	private function sortActions() {
118
-		usort($this->actions, function (IAction $action1, IAction $action2) {
119
-			$prio1 = $action1->getPriority();
120
-			$prio2 = $action2->getPriority();
121
-
122
-			if ($prio1 === $prio2) {
123
-				// Ascending order for same priority
124
-				return strcasecmp($action1->getName(), $action2->getName());
125
-			}
126
-
127
-			// Descending order when priority differs
128
-			return $prio2 - $prio1;
129
-		});
130
-	}
131
-
132
-	/**
133
-	 * @param array $contact key-value array containing additional properties
134
-	 */
135
-	public function setProperties(array $contact) {
136
-		$this->properties = $contact;
137
-	}
138
-
139
-	/**
140
-	 * @param string $key
141
-	 * @return mixed
142
-	 */
143
-	public function getProperty($key) {
144
-		if (!isset($this->properties[$key])) {
145
-			return null;
146
-		}
147
-		return $this->properties[$key];
148
-	}
149
-
150
-	/**
151
-	 * @return array
152
-	 */
153
-	public function jsonSerialize() {
154
-		$topAction = !empty($this->actions) ? $this->actions[0]->jsonSerialize() : null;
155
-		$otherActions = array_map(function (IAction $action) {
156
-			return $action->jsonSerialize();
157
-		}, array_slice($this->actions, 1));
158
-
159
-		return [
160
-			'id' => $this->id,
161
-			'fullName' => $this->fullName,
162
-			'avatar' => $this->getAvatar(),
163
-			'topAction' => $topAction,
164
-			'actions' => $otherActions,
165
-			'lastMessage' => '',
166
-		];
167
-	}
32
+    /** @var string|int|null */
33
+    private $id = null;
34
+
35
+    /** @var string */
36
+    private $fullName = '';
37
+
38
+    /** @var string[] */
39
+    private $emailAddresses = [];
40
+
41
+    /** @var string|null */
42
+    private $avatar;
43
+
44
+    /** @var IAction[] */
45
+    private $actions = [];
46
+
47
+    /** @var array */
48
+    private $properties = [];
49
+
50
+    /**
51
+     * @param string $id
52
+     */
53
+    public function setId($id) {
54
+        $this->id = $id;
55
+    }
56
+
57
+    /**
58
+     * @param string $displayName
59
+     */
60
+    public function setFullName($displayName) {
61
+        $this->fullName = $displayName;
62
+    }
63
+
64
+    /**
65
+     * @return string
66
+     */
67
+    public function getFullName() {
68
+        return $this->fullName;
69
+    }
70
+
71
+    /**
72
+     * @param string $address
73
+     */
74
+    public function addEMailAddress($address) {
75
+        $this->emailAddresses[] = $address;
76
+    }
77
+
78
+    /**
79
+     * @return string
80
+     */
81
+    public function getEMailAddresses() {
82
+        return $this->emailAddresses;
83
+    }
84
+
85
+    /**
86
+     * @param string $avatar
87
+     */
88
+    public function setAvatar($avatar) {
89
+        $this->avatar = $avatar;
90
+    }
91
+
92
+    /**
93
+     * @return string
94
+     */
95
+    public function getAvatar() {
96
+        return $this->avatar;
97
+    }
98
+
99
+    /**
100
+     * @param IAction $action
101
+     */
102
+    public function addAction(IAction $action) {
103
+        $this->actions[] = $action;
104
+        $this->sortActions();
105
+    }
106
+
107
+    /**
108
+     * @return IAction[]
109
+     */
110
+    public function getActions() {
111
+        return $this->actions;
112
+    }
113
+
114
+    /**
115
+     * sort the actions by priority and name
116
+     */
117
+    private function sortActions() {
118
+        usort($this->actions, function (IAction $action1, IAction $action2) {
119
+            $prio1 = $action1->getPriority();
120
+            $prio2 = $action2->getPriority();
121
+
122
+            if ($prio1 === $prio2) {
123
+                // Ascending order for same priority
124
+                return strcasecmp($action1->getName(), $action2->getName());
125
+            }
126
+
127
+            // Descending order when priority differs
128
+            return $prio2 - $prio1;
129
+        });
130
+    }
131
+
132
+    /**
133
+     * @param array $contact key-value array containing additional properties
134
+     */
135
+    public function setProperties(array $contact) {
136
+        $this->properties = $contact;
137
+    }
138
+
139
+    /**
140
+     * @param string $key
141
+     * @return mixed
142
+     */
143
+    public function getProperty($key) {
144
+        if (!isset($this->properties[$key])) {
145
+            return null;
146
+        }
147
+        return $this->properties[$key];
148
+    }
149
+
150
+    /**
151
+     * @return array
152
+     */
153
+    public function jsonSerialize() {
154
+        $topAction = !empty($this->actions) ? $this->actions[0]->jsonSerialize() : null;
155
+        $otherActions = array_map(function (IAction $action) {
156
+            return $action->jsonSerialize();
157
+        }, array_slice($this->actions, 1));
158
+
159
+        return [
160
+            'id' => $this->id,
161
+            'fullName' => $this->fullName,
162
+            'avatar' => $this->getAvatar(),
163
+            'topAction' => $topAction,
164
+            'actions' => $otherActions,
165
+            'lastMessage' => '',
166
+        ];
167
+    }
168 168
 }
Please login to merge, or discard this patch.
lib/private/BackgroundJob/Legacy/QueuedJob.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -24,12 +24,12 @@
 block discarded – undo
24 24
 namespace OC\BackgroundJob\Legacy;
25 25
 
26 26
 class QueuedJob extends \OC\BackgroundJob\QueuedJob {
27
-	public function run($argument) {
28
-		$class = $argument['klass'];
29
-		$method = $argument['method'];
30
-		$parameters = $argument['parameters'];
31
-		if (is_callable([$class, $method])) {
32
-			call_user_func([$class, $method], $parameters);
33
-		}
34
-	}
27
+    public function run($argument) {
28
+        $class = $argument['klass'];
29
+        $method = $argument['method'];
30
+        $parameters = $argument['parameters'];
31
+        if (is_callable([$class, $method])) {
32
+            call_user_func([$class, $method], $parameters);
33
+        }
34
+    }
35 35
 }
Please login to merge, or discard this patch.
lib/private/Template/TemplateFileLocator.php 1 patch
Indentation   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -26,37 +26,37 @@
 block discarded – undo
26 26
 namespace OC\Template;
27 27
 
28 28
 class TemplateFileLocator {
29
-	protected $dirs;
30
-	private $path;
29
+    protected $dirs;
30
+    private $path;
31 31
 
32
-	/**
33
-	 * @param string[] $dirs
34
-	 */
35
-	public function __construct($dirs) {
36
-		$this->dirs = $dirs;
37
-	}
32
+    /**
33
+     * @param string[] $dirs
34
+     */
35
+    public function __construct($dirs) {
36
+        $this->dirs = $dirs;
37
+    }
38 38
 
39
-	/**
40
-	 * @param string $template
41
-	 * @return string
42
-	 * @throws \Exception
43
-	 */
44
-	public function find($template) {
45
-		if ($template === '') {
46
-			throw new \InvalidArgumentException('Empty template name');
47
-		}
39
+    /**
40
+     * @param string $template
41
+     * @return string
42
+     * @throws \Exception
43
+     */
44
+    public function find($template) {
45
+        if ($template === '') {
46
+            throw new \InvalidArgumentException('Empty template name');
47
+        }
48 48
 
49
-		foreach ($this->dirs as $dir) {
50
-			$file = $dir.$template.'.php';
51
-			if (is_file($file)) {
52
-				$this->path = $dir;
53
-				return $file;
54
-			}
55
-		}
56
-		throw new \Exception('template file not found: template:'.$template);
57
-	}
49
+        foreach ($this->dirs as $dir) {
50
+            $file = $dir.$template.'.php';
51
+            if (is_file($file)) {
52
+                $this->path = $dir;
53
+                return $file;
54
+            }
55
+        }
56
+        throw new \Exception('template file not found: template:'.$template);
57
+    }
58 58
 
59
-	public function getPath() {
60
-		return $this->path;
61
-	}
59
+    public function getPath() {
60
+        return $this->path;
61
+    }
62 62
 }
Please login to merge, or discard this patch.