Browse Source

Style fixes

J. King 3 months ago
parent
commit
cf896121b2

+ 1
- 0
.php_cs.dist View File

@@ -17,6 +17,7 @@ $paths = [
17 17
 $rules = [
18 18
     '@PSR2' => true,
19 19
     'braces' => ['position_after_functions_and_oop_constructs' => "same"],
20
+    'function_declaration' => ['closure_function_spacing' => "none"],
20 21
 ];
21 22
 
22 23
 $finder = \PhpCsFixer\Finder::create();

+ 1
- 1
RoboFile.php View File

@@ -61,7 +61,7 @@ class RoboFile extends \Robo\Tasks {
61 61
      * coverage may be skipped, while working alternatives are normally
62 62
      * suppressed for reasons of time. This coverage report will try to
63 63
      * run all tests which may cover code.
64
-     * 
64
+     *
65 65
      * See also help for the "coverage" task for more details.
66 66
     */
67 67
     public function coverageFull(array $args): Result {

+ 10
- 9
lib/Database.php View File

@@ -808,20 +808,20 @@ class Database {
808 808
         $greatest = $this->db->sqlToken("greatest");
809 809
         // prepare the output column list
810 810
         $colDefs = [
811
-            'id' => "arsse_articles.id", 
812
-            'edition' => "latest_editions.edition", 
813
-            'url' => "arsse_articles.url", 
814
-            'title' => "arsse_articles.title", 
815
-            'author' => "arsse_articles.author", 
816
-            'content' => "arsse_articles.content", 
817
-            'guid' => "arsse_articles.guid", 
811
+            'id' => "arsse_articles.id",
812
+            'edition' => "latest_editions.edition",
813
+            'url' => "arsse_articles.url",
814
+            'title' => "arsse_articles.title",
815
+            'author' => "arsse_articles.author",
816
+            'content' => "arsse_articles.content",
817
+            'guid' => "arsse_articles.guid",
818 818
             'fingerprint' => "arsse_articles.url_title_hash || ':' || arsse_articles.url_content_hash || ':' || arsse_articles.title_content_hash",
819 819
             'subscription' => "arsse_subscriptions.id",
820 820
             'feed' => "arsse_subscriptions.feed",
821 821
             'starred' => "coalesce(arsse_marks.starred,0)",
822 822
             'unread' => "abs(coalesce(arsse_marks.read,0) - 1)",
823 823
             'note' => "coalesce(arsse_marks.note,'')",
824
-            'published_date' => "arsse_articles.published", 
824
+            'published_date' => "arsse_articles.published",
825 825
             'edited_date' => "arsse_articles.edited",
826 826
             'modified_date' => "arsse_articles.modified",
827 827
             'marked_date' => "$greatest(arsse_articles.modified, coalesce(arsse_marks.modified, '0001-01-01 00:00:00'), coalesce(arsse_label_members.modified, '0001-01-01 00:00:00'))",
@@ -855,7 +855,8 @@ class Database {
855 855
             left join arsse_enclosures on arsse_enclosures.article = arsse_articles.id
856 856
             left join arsse_label_members on arsse_label_members.subscription = arsse_subscriptions.id and arsse_label_members.article = arsse_articles.id and arsse_label_members.assigned = 1
857 857
             left join arsse_labels on arsse_labels.owner = arsse_subscriptions.owner and arsse_label_members.label = arsse_labels.id",
858
-            ["str"], [$user]
858
+            ["str"],
859
+            [$user]
859 860
         );
860 861
         $q->setCTE("latest_editions(article,edition)", "SELECT article,max(id) from arsse_editions group by article", [], [], "join latest_editions on arsse_articles.id = latest_editions.article");
861 862
         if ($cols) {

+ 1
- 1
lib/Db/ResultAggregate.php View File

@@ -16,7 +16,7 @@ class ResultAggregate extends AbstractResult {
16 16
     // actual public methods
17 17
 
18 18
     public function changes(): int {
19
-        return array_reduce($this->data, function ($sum, $value) {
19
+        return array_reduce($this->data, function($sum, $value) {
20 20
             return $sum + $value->changes();
21 21
         }, 0);
22 22
     }

+ 1
- 1
lib/Db/SQLite3/Driver.php View File

@@ -104,7 +104,7 @@ class Driver extends \JKingWeb\Arsse\Db\AbstractDriver {
104 104
     }
105 105
 
106 106
     public function sqlToken(string $token): string {
107
-        switch(strtolower($token)) {
107
+        switch (strtolower($token)) {
108 108
             case "greatest":
109 109
                 return "max";
110 110
             default:

+ 1
- 1
lib/Lang.php View File

@@ -140,7 +140,7 @@ class Lang {
140 140
     protected function listFiles(): array {
141 141
         $out = $this->globFiles($this->path."*.php");
142 142
         // trim the returned file paths to return just the language tag
143
-        $out = array_map(function ($file) {
143
+        $out = array_map(function($file) {
144 144
             $file = str_replace(DIRECTORY_SEPARATOR, "/", $file); // we replace the directory separator because we don't use native paths in testing
145 145
             $file = substr($file, strrpos($file, "/")+1);
146 146
             return strtolower(substr($file, 0, strrpos($file, ".")));

+ 2
- 2
lib/REST.php View File

@@ -97,7 +97,7 @@ class REST {
97 97
     public function apiMatch(string $url): array {
98 98
         $map = $this->apis;
99 99
         // sort the API list so the longest URL prefixes come first
100
-        uasort($map, function ($a, $b) {
100
+        uasort($map, function($a, $b) {
101 101
             return (strlen($a['match']) <=> strlen($b['match'])) * -1;
102 102
         });
103 103
         // normalize the target URL
@@ -270,7 +270,7 @@ class REST {
270 270
             } else {
271 271
                 // if the host is a domain name or IP address, split it along dots and just perform URL decoding
272 272
                 $host = explode(".", $host);
273
-                $host = array_map(function ($segment) {
273
+                $host = array_map(function($segment) {
274 274
                     return str_replace(".", "%2E", rawurlencode(strtolower(rawurldecode($segment))));
275 275
                 }, $host);
276 276
                 $host = implode(".", $host);

+ 1
- 1
lib/REST/TinyTinyRSS/API.php View File

@@ -330,7 +330,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
330 330
                     'id' => "FEED:".self::FEED_ALL,
331 331
                     'bare_id' => self::FEED_ALL,
332 332
                     'icon' => "images/folder.png",
333
-                    'unread' => array_reduce($subs, function ($sum, $value) {
333
+                    'unread' => array_reduce($subs, function($sum, $value) {
334 334
                         return $sum + $value['unread'];
335 335
                     }, 0), // the sum of all feeds' unread is the total unread
336 336
                 ], $tSpecial),

+ 0
- 1
lib/User.php View File

@@ -9,7 +9,6 @@ namespace JKingWeb\Arsse;
9 9
 use PasswordGenerator\Generator as PassGen;
10 10
 
11 11
 class User {
12
-
13 12
     public $id = null;
14 13
 
15 14
     /**

+ 1
- 2
tests/cases/CLI/TestCLI.php View File

@@ -16,7 +16,6 @@ use Phake;
16 16
 
17 17
 /** @covers \JKingWeb\Arsse\CLI */
18 18
 class TestCLI extends \JKingWeb\Arsse\Test\AbstractTest {
19
-
20 19
     public function setUp() {
21 20
         self::clearData(false);
22 21
     }
@@ -25,7 +24,7 @@ class TestCLI extends \JKingWeb\Arsse\Test\AbstractTest {
25 24
         $argv = \Clue\Arguments\split($command);
26 25
         $output = strlen($output) ? $output.\PHP_EOL : "";
27 26
         if ($pattern) {
28
-            $this->expectOutputRegex($output);   
27
+            $this->expectOutputRegex($output);
29 28
         } else {
30 29
             $this->expectOutputString($output);
31 30
         }

+ 3
- 3
tests/cases/Database/Base.php View File

@@ -15,7 +15,7 @@ use JKingWeb\Arsse\Db\Result;
15 15
 use JKingWeb\Arsse\Test\DatabaseInformation;
16 16
 use Phake;
17 17
 
18
-abstract class Base extends \JKingWeb\Arsse\Test\AbstractTest{
18
+abstract class Base extends \JKingWeb\Arsse\Test\AbstractTest {
19 19
     use SeriesMiscellany;
20 20
     use SeriesMeta;
21 21
     use SeriesUser;
@@ -34,7 +34,7 @@ abstract class Base extends \JKingWeb\Arsse\Test\AbstractTest{
34 34
     protected static $failureReason = "";
35 35
     protected $primed = false;
36 36
 
37
-    protected abstract function nextID(string $table): int;
37
+    abstract protected function nextID(string $table): int;
38 38
 
39 39
     protected function findTraitOfTest(string $test): string {
40 40
         $class = new \ReflectionClass(self::class);
@@ -50,7 +50,7 @@ abstract class Base extends \JKingWeb\Arsse\Test\AbstractTest{
50 50
         // establish a clean baseline
51 51
         static::clearData();
52 52
         // perform an initial connection to the database to reset its version to zero
53
-        // in the case of SQLite this will always be the case (we use a memory database), 
53
+        // in the case of SQLite this will always be the case (we use a memory database),
54 54
         // but other engines should clean up from potentially interrupted prior tests
55 55
         static::$dbInfo = new DatabaseInformation(static::$implementation);
56 56
         static::setConf();

+ 1
- 1
tests/cases/Database/SeriesArticle.php View File

@@ -411,7 +411,7 @@ trait SeriesArticle {
411 411
             305 => 105,
412 412
             1001 => 20,
413 413
         ];
414
-        $this->assertEquals($exp, Arsse::$db->editionArticle(...range(1,1001)));
414
+        $this->assertEquals($exp, Arsse::$db->editionArticle(...range(1, 1001)));
415 415
     }
416 416
 
417 417
     public function testListArticlesCheckingContext() {

+ 0
- 1
tests/cases/Database/SeriesSubscription.php View File

@@ -12,7 +12,6 @@ use JKingWeb\Arsse\Feed\Exception as FeedException;
12 12
 use Phake;
13 13
 
14 14
 trait SeriesSubscription {
15
-
16 15
     public function setUpSeriesSubscription() {
17 16
         $this->data = [
18 17
             'arsse_users' => [

+ 3
- 3
tests/cases/Db/BaseDriver.php View File

@@ -76,7 +76,7 @@ abstract class BaseDriver extends \JKingWeb\Arsse\Test\AbstractTest {
76 76
         return static::$interface->query($q)->fetchColumn();
77 77
     }
78 78
 
79
-    # TESTS 
79
+    # TESTS
80 80
     
81 81
     public function testFetchDriverName() {
82 82
         $class = get_class($this->drv);
@@ -115,7 +115,7 @@ abstract class BaseDriver extends \JKingWeb\Arsse\Test\AbstractTest {
115 115
         $this->exec($this->create);
116 116
         $this->exec($this->lock);
117 117
         $this->assertException("general", "Db", "ExceptionTimeout");
118
-        $lock = is_array($this->lock) ? implode("; ",$this->lock) : $this->lock;
118
+        $lock = is_array($this->lock) ? implode("; ", $this->lock) : $this->lock;
119 119
         $this->drv->exec($lock);
120 120
     }
121 121
 
@@ -144,7 +144,7 @@ abstract class BaseDriver extends \JKingWeb\Arsse\Test\AbstractTest {
144 144
         $this->exec($this->create);
145 145
         $this->exec($this->lock);
146 146
         $this->assertException("general", "Db", "ExceptionTimeout");
147
-        $lock = is_array($this->lock) ? implode("; ",$this->lock) : $this->lock;
147
+        $lock = is_array($this->lock) ? implode("; ", $this->lock) : $this->lock;
148 148
         $this->drv->exec($lock);
149 149
     }
150 150
 

+ 0
- 2
tests/cases/Db/BaseStatement.php View File

@@ -275,7 +275,6 @@ abstract class BaseStatement extends \JKingWeb\Arsse\Test\AbstractTest {
275 275
         ];
276 276
         foreach ($tests as $index => list($value, $type, $exp)) {
277 277
             $t = preg_replace("<^strict >", "", $type);
278
-            if (gettype($exp) != "string") var_export($index);
279 278
             $exp = ($exp=="null") ? $exp : $this->decorateTypeSyntax($exp, $t);
280 279
             yield $index => [$value, $type, $exp];
281 280
         }
@@ -327,7 +326,6 @@ abstract class BaseStatement extends \JKingWeb\Arsse\Test\AbstractTest {
327 326
         ];
328 327
         foreach ($tests as $index => list($value, $type, $exp)) {
329 328
             $t = preg_replace("<^strict >", "", $type);
330
-            if (gettype($exp) != "string") var_export($index);
331 329
             $exp = ($exp=="null") ? $exp : $this->decorateTypeSyntax($exp, $t);
332 330
             yield $index => [$value, $type, $exp];
333 331
         }

+ 1
- 1
tests/cases/Db/PostgreSQL/TestCreation.php View File

@@ -21,7 +21,7 @@ class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest {
21 21
         if ($act==$postfix) {
22 22
             $this->assertSame($exp, "");
23 23
         } else {
24
-            $test = substr($act, 0, strlen($act) - (strlen($postfix) + 1) );
24
+            $test = substr($act, 0, strlen($act) - (strlen($postfix) + 1));
25 25
             $check = substr($act, strlen($test) + 1);
26 26
             $this->assertSame($postfix, $check);
27 27
             $this->assertSame($exp, $test);

+ 3
- 3
tests/cases/Db/PostgreSQL/TestDatabase.php View File

@@ -6,7 +6,7 @@
6 6
 declare(strict_types=1);
7 7
 namespace JKingWeb\Arsse\TestCase\Db\PosgreSQL;
8 8
 
9
-/** 
9
+/**
10 10
  * @group excludeFromCoverage
11 11
  * @covers \JKingWeb\Arsse\Database<extended>
12 12
  * @covers \JKingWeb\Arsse\Misc\Query<extended>
@@ -20,7 +20,7 @@ class TestDatabase extends \JKingWeb\Arsse\TestCase\Database\Base {
20 20
 
21 21
     public function setUp() {
22 22
         parent::setUp();
23
-        $seqList = 
23
+        $seqList =
24 24
             "select 
25 25
                 replace(substring(column_default, 10), right(column_default, 12), '') as seq, 
26 26
                 table_name as table, 
@@ -30,7 +30,7 @@ class TestDatabase extends \JKingWeb\Arsse\TestCase\Database\Base {
30 30
                 and table_name like 'arsse_%' 
31 31
                 and column_default like 'nextval(%'
32 32
             ";
33
-        foreach(static::$drv->query($seqList) as $r) {
33
+        foreach (static::$drv->query($seqList) as $r) {
34 34
             $num = (int) static::$drv->query("SELECT max({$r['col']}) from {$r['table']}")->getValue();
35 35
             if (!$num) {
36 36
                 continue;

+ 1
- 2
tests/cases/Db/PostgreSQL/TestStatement.php View File

@@ -23,9 +23,8 @@ class TestStatement extends \JKingWeb\Arsse\TestCase\Db\BaseStatement {
23 23
             case "string":
24 24
                 if (preg_match("<^char\((\d+)\)$>", $value, $match)) {
25 25
                     return "U&'\\+".str_pad(dechex((int) $match[1]), 6, "0", \STR_PAD_LEFT)."'";
26
-                } else {
27
-                    return $value;
28 26
                 }
27
+                return $value;
29 28
             default:
30 29
                 return $value;
31 30
         }

+ 1
- 1
tests/cases/Db/SQLite3/TestDatabase.php View File

@@ -6,7 +6,7 @@
6 6
 declare(strict_types=1);
7 7
 namespace JKingWeb\Arsse\TestCase\Db\SQLite3;
8 8
 
9
-/** 
9
+/**
10 10
  * @covers \JKingWeb\Arsse\Database<extended>
11 11
  * @covers \JKingWeb\Arsse\Misc\Query<extended>
12 12
  */

+ 2
- 2
tests/cases/Db/SQLite3/TestResult.php View File

@@ -8,8 +8,8 @@ namespace JKingWeb\Arsse\TestCase\Db\SQLite3;
8 8
 
9 9
 use JKingWeb\Arsse\Test\DatabaseInformation;
10 10
 
11
-/** 
12
- * @covers \JKingWeb\Arsse\Db\SQLite3\Result<extended> 
11
+/**
12
+ * @covers \JKingWeb\Arsse\Db\SQLite3\Result<extended>
13 13
  */
14 14
 class TestResult extends \JKingWeb\Arsse\TestCase\Db\BaseResult {
15 15
     protected static $implementation = "SQLite 3";

+ 1
- 1
tests/cases/Db/SQLite3PDO/TestDatabase.php View File

@@ -6,7 +6,7 @@
6 6
 declare(strict_types=1);
7 7
 namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO;
8 8
 
9
-/** 
9
+/**
10 10
  * @covers \JKingWeb\Arsse\Database<extended>
11 11
  * @covers \JKingWeb\Arsse\Misc\Query<extended>
12 12
  */

+ 2
- 2
tests/cases/Db/TestResultPDO.php View File

@@ -8,8 +8,8 @@ namespace JKingWeb\Arsse\TestCase\Db;
8 8
 
9 9
 use JKingWeb\Arsse\Test\DatabaseInformation;
10 10
 
11
-/** 
12
- * @covers \JKingWeb\Arsse\Db\PDOResult<extended> 
11
+/**
12
+ * @covers \JKingWeb\Arsse\Db\PDOResult<extended>
13 13
  */
14 14
 class TestResultPDO extends \JKingWeb\Arsse\TestCase\Db\BaseResult {
15 15
     protected static $implementation;

+ 5
- 5
tests/cases/REST/TestREST.php View File

@@ -153,7 +153,7 @@ class TestREST extends \JKingWeb\Arsse\Test\AbstractTest {
153 153
     public function testNegotiateCors($origin, bool $exp, string $allowed = null, string $denied = null) {
154 154
         self::setConf();
155 155
         $r = Phake::partialMock(REST::class);
156
-        Phake::when($r)->corsNormalizeOrigin->thenReturnCallback(function ($origin) {
156
+        Phake::when($r)->corsNormalizeOrigin->thenReturnCallback(function($origin) {
157 157
             return $origin;
158 158
         });
159 159
         $headers = isset($origin) ? ['Origin' => $origin] : [];
@@ -255,10 +255,10 @@ class TestREST extends \JKingWeb\Arsse\Test\AbstractTest {
255 255
     public function testNormalizeHttpResponses(ResponseInterface $res, ResponseInterface $exp, RequestInterface $req = null) {
256 256
         $r = Phake::partialMock(REST::class);
257 257
         Phake::when($r)->corsNegotiate->thenReturn(true);
258
-        Phake::when($r)->challenge->thenReturnCallback(function ($res) {
258
+        Phake::when($r)->challenge->thenReturnCallback(function($res) {
259 259
             return $res->withHeader("WWW-Authenticate", "Fake Value");
260 260
         });
261
-        Phake::when($r)->corsApply->thenReturnCallback(function ($res) {
261
+        Phake::when($r)->corsApply->thenReturnCallback(function($res) {
262 262
             return $res;
263 263
         });
264 264
         $act = $r->normalizeResponse($res, $req);
@@ -298,10 +298,10 @@ class TestREST extends \JKingWeb\Arsse\Test\AbstractTest {
298 298
     /** @dataProvider provideMockRequests */
299 299
     public function testDispatchRequests(ServerRequest $req, string $method, bool $called, string $class = "", string $target ="") {
300 300
         $r = Phake::partialMock(REST::class);
301
-        Phake::when($r)->normalizeResponse->thenReturnCallback(function ($res) {
301
+        Phake::when($r)->normalizeResponse->thenReturnCallback(function($res) {
302 302
             return $res;
303 303
         });
304
-        Phake::when($r)->authenticateRequest->thenReturnCallback(function ($req) {
304
+        Phake::when($r)->authenticateRequest->thenReturnCallback(function($req) {
305 305
             return $req;
306 306
         });
307 307
         if ($called) {

+ 4
- 4
tests/cases/REST/TinyTinyRSS/TestAPI.php View File

@@ -1516,13 +1516,13 @@ LONG_STRING;
1516 1516
     }
1517 1517
 
1518 1518
     protected function filterFolders(int $id = null): array {
1519
-        return array_filter($this->folders, function ($value) use ($id) {
1519
+        return array_filter($this->folders, function($value) use ($id) {
1520 1520
             return $value['parent']==$id;
1521 1521
         });
1522 1522
     }
1523 1523
 
1524 1524
     protected function filterSubs(int $folder = null): array {
1525
-        return array_filter($this->subscriptions, function ($value) use ($folder) {
1525
+        return array_filter($this->subscriptions, function($value) use ($folder) {
1526 1526
             return $value['folder']==$folder;
1527 1527
         });
1528 1528
     }
@@ -1532,9 +1532,9 @@ LONG_STRING;
1532 1532
         foreach ($this->filterFolders($id) as $f) {
1533 1533
             $out += $this->reduceFolders($f['id']);
1534 1534
         }
1535
-        $out += array_reduce(array_filter($this->subscriptions, function ($value) use ($id) {
1535
+        $out += array_reduce(array_filter($this->subscriptions, function($value) use ($id) {
1536 1536
             return $value['folder']==$id;
1537
-        }), function ($sum, $value) {
1537
+        }), function($sum, $value) {
1538 1538
             return $sum + $value['unread'];
1539 1539
         }, 0);
1540 1540
         return $out;

+ 2
- 3
tests/cases/User/TestInternal.php View File

@@ -17,7 +17,6 @@ use Phake;
17 17
 
18 18
 /** @covers \JKingWeb\Arsse\User\Internal\Driver */
19 19
 class TestInternal extends \JKingWeb\Arsse\Test\AbstractTest {
20
-
21 20
     public function setUp() {
22 21
         self::clearData();
23 22
         self::setConf();
@@ -34,8 +33,8 @@ class TestInternal extends \JKingWeb\Arsse\Test\AbstractTest {
34 33
         $this->assertTrue(strlen(Driver::driverName()) > 0);
35 34
     }
36 35
 
37
-    /** 
38
-     * @dataProvider provideAuthentication 
36
+    /**
37
+     * @dataProvider provideAuthentication
39 38
      * @group slow
40 39
     */
41 40
     public function testAuthenticateAUser(bool $authorized, string $user, string $password, bool $exp) {

+ 1
- 2
tests/cases/User/TestUser.php View File

@@ -17,7 +17,6 @@ use Phake;
17 17
 
18 18
 /** @covers \JKingWeb\Arsse\User */
19 19
 class TestUser extends \JKingWeb\Arsse\Test\AbstractTest {
20
-
21 20
     public function setUp() {
22 21
         self::clearData();
23 22
         self::setConf();
@@ -236,7 +235,7 @@ class TestUser extends \JKingWeb\Arsse\Test\AbstractTest {
236 235
                 $this->assertException("doesNotExist", "User");
237 236
             }
238 237
             $calls = 0;
239
-        } else{
238
+        } else {
240 239
             $calls = 1;
241 240
         }
242 241
         try {

+ 4
- 4
tests/lib/DatabaseInformation.php View File

@@ -80,7 +80,7 @@ class DatabaseInformation {
80 80
             // rollback any pending transaction
81 81
             try {
82 82
                 $db->exec("ROLLBACK");
83
-            } catch(\Throwable $e) {
83
+            } catch (\Throwable $e) {
84 84
             }
85 85
             foreach ($sqlite3TableList($db) as $table) {
86 86
                 if ($table == "arsse_meta") {
@@ -97,7 +97,7 @@ class DatabaseInformation {
97 97
             // rollback any pending transaction
98 98
             try {
99 99
                 $db->exec("ROLLBACK");
100
-            } catch(\Throwable $e) {
100
+            } catch (\Throwable $e) {
101 101
             }
102 102
             $db->exec("PRAGMA foreign_keys=0");
103 103
             foreach ($sqlite3TableList($db) as $table) {
@@ -181,7 +181,7 @@ class DatabaseInformation {
181 181
                     // rollback any pending transaction
182 182
                     try {
183 183
                         $db->exec("ROLLBACK");
184
-                    } catch(\Throwable $e) {
184
+                    } catch (\Throwable $e) {
185 185
                     }
186 186
                     foreach ($pgObjectList($db) as $obj) {
187 187
                         if ($obj['type'] != "TABLE") {
@@ -200,7 +200,7 @@ class DatabaseInformation {
200 200
                     // rollback any pending transaction
201 201
                     try {
202 202
                         $db->exec("ROLLBACK");
203
-                    } catch(\Throwable $e) {
203
+                    } catch (\Throwable $e) {
204 204
                     }
205 205
                     foreach ($pgObjectList($db) as $obj) {
206 206
                         $db->exec("DROP {$obj['type']} IF EXISTS {$obj['name']} cascade");

Loading…
Cancel
Save