aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/DB
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2022-08-22 16:56:01 +0200
committerCôme Chilliet <come.chilliet@nextcloud.com>2022-08-25 16:13:47 +0200
commita83a8f0dde07bff67e0ceb7008cc26b3fad32516 (patch)
treea1dcc3e67eab7f2ff56a0fc60aa3f19387b943cd /lib/private/DB
parent5aac997d448da55f1c43648b1e5cf1a9c1360d6c (diff)
downloadnextcloud-server-a83a8f0dde07bff67e0ceb7008cc26b3fad32516.tar.gz
nextcloud-server-a83a8f0dde07bff67e0ceb7008cc26b3fad32516.zip
Migrate Migrator::executeSql to OCP\EventDispatcher\Event
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'lib/private/DB')
-rw-r--r--lib/private/DB/Migrator.php12
-rw-r--r--lib/private/DB/MigratorExecuteSqlEvent.php52
2 files changed, 57 insertions, 7 deletions
diff --git a/lib/private/DB/Migrator.php b/lib/private/DB/Migrator.php
index d2fdefefb39..5dc07be1d2b 100644
--- a/lib/private/DB/Migrator.php
+++ b/lib/private/DB/Migrator.php
@@ -37,9 +37,8 @@ use Doctrine\DBAL\Schema\SchemaDiff;
use Doctrine\DBAL\Types\StringType;
use Doctrine\DBAL\Types\Type;
use OCP\IConfig;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use Symfony\Component\EventDispatcher\GenericEvent;
use function preg_match;
+use OCP\EventDispatcher\IEventDispatcher;
class Migrator {
@@ -49,15 +48,14 @@ class Migrator {
/** @var IConfig */
protected $config;
- /** @var ?EventDispatcherInterface */
- private $dispatcher;
+ private ?IEventDispatcher $dispatcher;
/** @var bool */
private $noEmit = false;
public function __construct(Connection $connection,
IConfig $config,
- ?EventDispatcherInterface $dispatcher = null) {
+ ?IEventDispatcher $dispatcher = null) {
$this->connection = $connection;
$this->config = $config;
$this->dispatcher = $dispatcher;
@@ -183,13 +181,13 @@ class Migrator {
return '/^' . preg_quote($this->config->getSystemValue('dbtableprefix', 'oc_')) . '/';
}
- protected function emit($sql, $step, $max) {
+ protected function emit(string $sql, int $step, int $max): void {
if ($this->noEmit) {
return;
}
if (is_null($this->dispatcher)) {
return;
}
- $this->dispatcher->dispatch('\OC\DB\Migrator::executeSql', new GenericEvent($sql, ['step' => $step + 1, 'max' => $max]));
+ $this->dispatcher->dispatchTyped(new MigratorExecuteSqlEvent($sql, $step, $max));
}
}
diff --git a/lib/private/DB/MigratorExecuteSqlEvent.php b/lib/private/DB/MigratorExecuteSqlEvent.php
new file mode 100644
index 00000000000..d8a0e2ac3ad
--- /dev/null
+++ b/lib/private/DB/MigratorExecuteSqlEvent.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * @copyright Copyright (c) 2022 Côme Chilliet <come.chilliet@nextcloud.com>
+ *
+ * @author Côme Chilliet <come.chilliet@nextcloud.com>
+ *
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+namespace OC\DB;
+
+use OCP\EventDispatcher\Event;
+
+class MigratorExecuteSqlEvent extends Event {
+ private string $sql;
+ private int $current;
+ private int $max;
+
+ public function __construct(
+ string $sql,
+ int $current,
+ int $max,
+ ) {
+ $this->sql = $sql;
+ $this->current = $current;
+ $this->max = $max;
+ }
+
+ public function getSql(): string {
+ return $this->sql;
+ }
+
+ public function getCurrentStep(): int {
+ return $this->current;
+ }
+
+ public function getMaxStep(): int {
+ return $this->max;
+ }
+}