]> git.mxchange.org Git - friendica.git/commitdiff
include suggested changes
authorPhilipp <admin@philipp.info>
Tue, 12 Jul 2022 22:23:12 +0000 (00:23 +0200)
committerPhilipp <admin@philipp.info>
Tue, 12 Jul 2022 22:23:12 +0000 (00:23 +0200)
18 files changed:
src/Console/DatabaseStructure.php
src/Core/Installer.php
src/Database/DBStructure.php
src/Database/Definition/DbaDefinition.php
src/Model/APContact.php
src/Model/Contact/User.php
src/Model/GServer.php
src/Model/Post.php
src/Model/Post/Content.php
src/Model/Post/History.php
src/Model/Post/Question.php
src/Model/Post/QuestionOption.php
src/Model/Post/Thread.php
src/Model/Post/ThreadUser.php
src/Model/Post/User.php
src/Model/Post/UserNotification.php
src/Util/Writer/DbaDefinitionSqlWriter.php
src/Worker/ExpirePosts.php

index b7eafaafdb77f44383702049d7f9eb1709ee434e..7bb7120fa7646cb2e5871547ba17587a6a3f81c5 100644 (file)
@@ -40,25 +40,19 @@ class DatabaseStructure extends \Asika\SimpleConsole\Console
 {
        protected $helpOptions = ['h', 'help', '?'];
 
-       /**
-        * @var Database
-        */
+       /** @var Database */
        private $dba;
-       /**
-        * @var Cache
-        */
+
+       /** @var Cache */
        private $configCache;
-       /**
-        * @var DbaDefinition
-        */
+
+       /** @var DbaDefinition */
        private $dbaDefinition;
-       /**
-        * @var ViewDefinition
-        */
+
+       /** @var ViewDefinition */
        private $viewDefinition;
-       /**
-        * @var string
-        */
+
+       /** @var string */
        private $basePath;
 
        protected function getHelp()
index 8ed6c9afa42965416ce242c6e748ea0b1c0dcf73..ff759c9febe10d25dfd316c7410c89d9acfe99d2 100644 (file)
@@ -192,7 +192,7 @@ class Installer
         * @return bool true if the installation was successful, otherwise false
         * @throws Exception
         */
-       public function installDatabase()
+       public function installDatabase(): bool
        {
                $result = DBStructure::install();
 
index b4f8ed13291564a24e3ea069ba13f766652c7ddd..441116d167f9277ce681531002d119ded2f485b5 100644 (file)
@@ -142,6 +142,7 @@ class DBStructure
         * Print out database error messages
         *
         * @param string $message Message to be added to the error message
+        *
         * @return string Error message
         */
        private static function printUpdateError(string $message): string
@@ -155,6 +156,7 @@ class DBStructure
        /**
         * Perform a database structure dryrun (means: just simulating)
         *
+        * @return string Empty string if the update is successful, error messages otherwise
         * @throws Exception
         */
        public static function dryRun(): string
@@ -513,28 +515,28 @@ class DBStructure
 
                $fields = DBA::selectToArray('INFORMATION_SCHEMA.COLUMNS',
                        ['COLUMN_NAME', 'COLUMN_TYPE', 'IS_NULLABLE', 'COLUMN_DEFAULT', 'EXTRA',
-                               'COLUMN_KEY', 'COLLATION_NAME', 'COLUMN_COMMENT'],
+                       'COLUMN_KEY', 'COLLATION_NAME', 'COLUMN_COMMENT'],
                        ["`TABLE_SCHEMA` = ? AND `TABLE_NAME` = ?",
-                               DBA::databaseName(), $table]);
+                       DBA::databaseName(), $table]);
 
                $foreign_keys = DBA::selectToArray('INFORMATION_SCHEMA.KEY_COLUMN_USAGE',
                        ['COLUMN_NAME', 'CONSTRAINT_NAME', 'REFERENCED_TABLE_NAME', 'REFERENCED_COLUMN_NAME'],
                        ["`TABLE_SCHEMA` = ? AND `TABLE_NAME` = ? AND `REFERENCED_TABLE_SCHEMA` IS NOT NULL",
-                               DBA::databaseName(), $table]);
+                       DBA::databaseName(), $table]);
 
                $table_status = DBA::selectFirst('INFORMATION_SCHEMA.TABLES',
                        ['ENGINE', 'TABLE_COLLATION', 'TABLE_COMMENT'],
                        ["`TABLE_SCHEMA` = ? AND `TABLE_NAME` = ?",
-                               DBA::databaseName(), $table]);
+                       DBA::databaseName(), $table]);
 
-               $fielddata   = [];
-               $indexdata   = [];
+               $fielddata = [];
+               $indexdata = [];
                $foreigndata = [];
 
                if (DBA::isResult($foreign_keys)) {
                        foreach ($foreign_keys as $foreign_key) {
-                               $parameters               = ['foreign' => [$foreign_key['REFERENCED_TABLE_NAME'] => $foreign_key['REFERENCED_COLUMN_NAME']]];
-                               $constraint               = self::getConstraintName($table, $foreign_key['COLUMN_NAME'], $parameters);
+                               $parameters = ['foreign' => [$foreign_key['REFERENCED_TABLE_NAME'] => $foreign_key['REFERENCED_COLUMN_NAME']]];
+                               $constraint = self::getConstraintName($table, $foreign_key['COLUMN_NAME'], $parameters);
                                $foreigndata[$constraint] = $foreign_key;
                        }
                }
@@ -562,8 +564,8 @@ class DBStructure
                $fielddata = [];
                if (DBA::isResult($fields)) {
                        foreach ($fields as $field) {
-                               $search               = ['tinyint(1)', 'tinyint(3) unsigned', 'tinyint(4)', 'smallint(5) unsigned', 'smallint(6)', 'mediumint(8) unsigned', 'mediumint(9)', 'bigint(20)', 'int(10) unsigned', 'int(11)'];
-                               $replace              = ['boolean', 'tinyint unsigned', 'tinyint', 'smallint unsigned', 'smallint', 'mediumint unsigned', 'mediumint', 'bigint', 'int unsigned', 'int'];
+                               $search = ['tinyint(1)', 'tinyint(3) unsigned', 'tinyint(4)', 'smallint(5) unsigned', 'smallint(6)', 'mediumint(8) unsigned', 'mediumint(9)', 'bigint(20)', 'int(10) unsigned', 'int(11)'];
+                               $replace = ['boolean', 'tinyint unsigned', 'tinyint', 'smallint unsigned', 'smallint', 'mediumint unsigned', 'mediumint', 'bigint', 'int unsigned', 'int'];
                                $field['COLUMN_TYPE'] = str_replace($search, $replace, $field['COLUMN_TYPE']);
 
                                $fielddata[$field['COLUMN_NAME']]['type'] = $field['COLUMN_TYPE'];
@@ -585,13 +587,13 @@ class DBStructure
                                }
 
                                $fielddata[$field['COLUMN_NAME']]['Collation'] = $field['COLLATION_NAME'];
-                               $fielddata[$field['COLUMN_NAME']]['comment']   = $field['COLUMN_COMMENT'];
+                               $fielddata[$field['COLUMN_NAME']]['comment'] = $field['COLUMN_COMMENT'];
                        }
                }
 
                return [
-                       'fields'       => $fielddata,
-                       'indexes'      => $indexdata,
+                       'fields' => $fielddata,
+                       'indexes' => $indexdata,
                        'foreign_keys' => $foreigndata,
                        'table_status' => $table_status
                ];
@@ -722,7 +724,7 @@ class DBStructure
        {
                return DBA::exists('INFORMATION_SCHEMA.KEY_COLUMN_USAGE',
                        ["`TABLE_SCHEMA` = ? AND `TABLE_NAME` = ? AND `COLUMN_NAME` = ? AND `REFERENCED_TABLE_SCHEMA` IS NOT NULL",
-                               DBA::databaseName(), $table, $field]);
+                       DBA::databaseName(), $table, $field]);
        }
 
        /**
@@ -795,8 +797,8 @@ class DBStructure
 
                if (self::existsTable('user') && !DBA::exists('user', ['uid' => 0])) {
                        $user = [
-                               'verified'     => true,
-                               'page-flags'   => User::PAGE_FLAGS_SOAPBOX,
+                               'verified' => true,
+                               'page-flags' => User::PAGE_FLAGS_SOAPBOX,
                                'account-type' => User::ACCOUNT_TYPE_RELAY,
                        ];
                        DBA::insert('user', $user);
@@ -872,7 +874,7 @@ class DBStructure
                                                $permission = '';
                                        }
                                        $fields = ['id' => $set['psid'], 'uid' => $set['uid'], 'allow_cid' => $permission,
-                                               'allow_gid'    => '', 'deny_cid' => '', 'deny_gid' => ''];
+                                               'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => ''];
                                        DBA::insert('permissionset', $fields);
                                }
                                DBA::close($sets);
@@ -902,7 +904,7 @@ class DBStructure
                $isUpdate = false;
 
                $processes = DBA::select('information_schema.processlist', ['info'], [
-                       'db'      => DBA::databaseName(),
+                       'db' => DBA::databaseName(),
                        'command' => ['Query', 'Execute']
                ]);
 
index 9f42d176a7658be08add0004db5d6d3bb94176c7..27eb1752295ec96a3640cdbfbab44a8b5d4871f8 100644 (file)
@@ -61,13 +61,14 @@ class DbaDefinition
        }
 
        /**
-        * Get field data for the given table
+        * Truncate field data for the given table
+        *
+        * @param string $table Name of the table to load field definitions for
+        * @param array  $data  data fields
         *
-        * @param string $table Tavle to load field definitions for
-        * @param array $data data fields
         * @return array fields for the given
         */
-       public function getFieldsForTable(string $table, array $data = []): array
+       public function truncateFieldsForTable(string $table, array $data): array
        {
                $definition = $this->definition;
                if (empty($definition[$table])) {
index bc51f37aa02c736fe75461c2bd5f9985631956ee..d07d24b42b0644aecab77c81e66a2591b1c49630 100644 (file)
@@ -466,7 +466,7 @@ class APContact
                }
 
                // Limit the length on incoming fields
-               $apcontact = DI::dbaDefinition()->getFieldsForTable('apcontact', $apcontact);
+               $apcontact = DI::dbaDefinition()->truncateFieldsForTable('apcontact', $apcontact);
 
                if (DBA::exists('apcontact', ['url' => $apcontact['url']])) {
                        DBA::update('apcontact', $apcontact, ['url' => $apcontact['url']]);
index bc500d5230ceb5cdb3a1ddb43867fb113fee30c8..1452369e5e330fb15ba1d60be9d4689f2f1f5a03 100644 (file)
@@ -130,7 +130,7 @@ class User
                        $fields['rel'] = Contact::SELF;
                }
 
-               return DI::dbaDefinition()->getFieldsForTable('user-contact', $fields);
+               return DI::dbaDefinition()->truncateFieldsForTable('user-contact', $fields);
        }
 
        /**
index e6f81a53f1097a62fea9cefcf40825ae9f61627c..a48f6e4ca61d0b2aeaf9c181a0e3d5b32c99579c 100644 (file)
@@ -2075,7 +2075,7 @@ class GServer
         */
        public static function update(array $fields, array $condition): bool
        {
-               $fields = DI::dbaDefinition()->getFieldsForTable('gserver', $fields);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('gserver', $fields);
 
                return DBA::update('gserver', $fields, $condition);
        }
index a83a0920a963cbd6812826bc977130dc69234097..2b71e2f142075b48c19512295e98aa76e71063c8 100644 (file)
@@ -46,7 +46,7 @@ class Post
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post', $data);
 
                // Additionally assign the key fields
                $fields['uri-id'] = $uri_id;
@@ -525,7 +525,7 @@ class Post
                // To ensure the data integrity we do it in an transaction
                DBA::transaction();
 
-               $update_fields = DI::dbaDefinition()->getFieldsForTable('post-user', $fields);
+               $update_fields = DI::dbaDefinition()->truncateFieldsForTable('post-user', $fields);
                if (!empty($update_fields)) {
                        $affected_count = 0;
                        $posts = DBA::select('post-user-view', ['post-user-id'], $condition);
@@ -542,7 +542,7 @@ class Post
                        $affected = $affected_count;
                }
 
-               $update_fields = DI::dbaDefinition()->getFieldsForTable('post-content', $fields);
+               $update_fields = DI::dbaDefinition()->truncateFieldsForTable('post-content', $fields);
                if (!empty($update_fields)) {
                        $affected_count = 0;
                        $posts = DBA::select('post-user-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
@@ -559,7 +559,7 @@ class Post
                        $affected = max($affected, $affected_count);
                }
 
-               $update_fields = DI::dbaDefinition()->getFieldsForTable('post', $fields);
+               $update_fields = DI::dbaDefinition()->truncateFieldsForTable('post', $fields);
                if (!empty($update_fields)) {
                        $affected_count = 0;
                        $posts = DBA::select('post-user-view', ['uri-id'], $condition, ['group_by' => ['uri-id']]);
@@ -593,7 +593,7 @@ class Post
                        $affected = max($affected, $affected_count);
                }
 
-               $update_fields = DI::dbaDefinition()->getFieldsForTable('post-thread', $fields);
+               $update_fields = DI::dbaDefinition()->truncateFieldsForTable('post-thread', $fields);
                if (!empty($update_fields)) {
                        $affected_count = 0;
                        $posts = DBA::select('post-user-view', ['uri-id'], $thread_condition, ['group_by' => ['uri-id']]);
@@ -610,7 +610,7 @@ class Post
                        $affected = max($affected, $affected_count);
                }
 
-               $update_fields = DI::dbaDefinition()->getFieldsForTable('post-thread-user', $fields);
+               $update_fields = DI::dbaDefinition()->truncateFieldsForTable('post-thread-user', $fields);
                if (!empty($update_fields)) {
                        $affected_count = 0;
                        $posts = DBA::select('post-user-view', ['post-user-id'], $thread_condition);
index e7723f1d16e6cfbb7a79dce3d25b346108f7ad59..63ea9b8cd15bcae2834ed91dd927aa484683adea 100644 (file)
@@ -45,7 +45,7 @@ class Content
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-content', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-content', $data);
 
                // Additionally assign the key fields
                $fields['uri-id'] = $uri_id;
@@ -68,7 +68,7 @@ class Content
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-content', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-content', $data);
 
                // Remove the key fields
                unset($fields['uri-id']);
index 29e0cf8c135b17360e2cc898baee78be6484d7cc..e7699e20c9b0b0f580b8965fea6b6757ab2b5653 100644 (file)
@@ -52,7 +52,7 @@ class History
                }
 
                $update  = false;
-               $changed = DI::dbaDefinition()->getFieldsForTable('post-history', $item);
+               $changed = DI::dbaDefinition()->truncateFieldsForTable('post-history', $item);
                unset($changed['uri-id']);
                unset($changed['edited']);
                foreach ($changed as $field => $content) {
index d73c54a582710c65c7cd21bd3e81e079c61fc837..6729e9f526db11a59b10d707e69e9f5aae4c0ae3 100644 (file)
@@ -43,7 +43,7 @@ class Question
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-question', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-question', $data);
 
                // Remove the key fields
                unset($fields['uri-id']);
index 03ac0633c7d3bbf22bfcfca723617e5e474a9df4..88617b21fc1f63ae55bb952a1ca6bb6e617cc607 100644 (file)
@@ -44,7 +44,7 @@ class QuestionOption
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-question-option', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-question-option', $data);
 
                // Remove the key fields
                unset($fields['uri-id']);
index c432c6d7f685ea60ca31482aff43cfe3e5410d9f..002b5ecb58bf8b2e8ae63b4b14a7e7d7f66412bf 100644 (file)
@@ -43,7 +43,7 @@ class Thread
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-thread', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-thread', $data);
 
                // Additionally assign the key fields
                $fields['uri-id'] = $uri_id;
@@ -66,7 +66,7 @@ class Thread
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-thread', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-thread', $data);
 
                // Remove the key fields
                unset($fields['uri-id']);
index 2e850de05dff46153cc4f2df6b3d545d26025f88..a6a3bbd92b2eeeb0b1cd91240d4513ba6260156f 100644 (file)
@@ -44,7 +44,7 @@ class ThreadUser
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-thread-user', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-thread-user', $data);
 
                // Additionally assign the key fields
                $fields['uri-id'] = $uri_id;
@@ -69,7 +69,7 @@ class ThreadUser
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-thread-user', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-thread-user', $data);
 
                // Remove the key fields
                unset($fields['uri-id']);
index efbcaf635b81ab3a573f783d50a28f76ed62dc00..9da97180688be41348a9bcfc8eb30475ee278256 100644 (file)
@@ -48,7 +48,7 @@ class User
                        return false;
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-user', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-user', $data);
 
                // Additionally assign the key fields
                $fields['uri-id'] = $uri_id;
@@ -82,7 +82,7 @@ class User
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-user', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-user', $data);
 
                // Remove the key fields
                unset($fields['uri-id']);
index 127857db4b65873a5f1c3befb2750de4272c8edc..4a57ff6ff56f35e84eafea95877dde01a5ffd4f5 100644 (file)
@@ -67,7 +67,7 @@ class UserNotification
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-user-notification', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-user-notification', $data);
 
                $fields['uri-id'] = $uri_id;
                $fields['uid']    = $uid;
@@ -91,7 +91,7 @@ class UserNotification
                        throw new BadMethodCallException('Empty URI_id');
                }
 
-               $fields = DI::dbaDefinition()->getFieldsForTable('post-user-notification', $data);
+               $fields = DI::dbaDefinition()->truncateFieldsForTable('post-user-notification', $data);
 
                // Remove the key fields
                unset($fields['uri-id']);
index 556957a85d9e12b3ab7c4f271c5f61e0c82af925..f5e41847feef5c613dd606932e5dce5d08a949e8 100644 (file)
@@ -74,7 +74,7 @@ class DbaDefinitionSqlWriter
                $foreign_keys = [];
 
                foreach ($tableStructure['fields'] as $fieldName => $field) {
-                       $sql_rows[] = '`' . static::escape($fieldName) . '` ' . self::FieldCommand($field);
+                       $sql_rows[] = '`' . static::escape($fieldName) . '` ' . self::fieldCommand($field);
                        if (!empty($field['primary'])) {
                                $primary_keys[] = $fieldName;
                        }
@@ -170,7 +170,7 @@ class DbaDefinitionSqlWriter
         */
        public static function addTableField(string $fieldName, array $parameters): string
        {
-               return sprintf("ADD `%s` %s", static::escape($fieldName), static::FieldCommand($parameters));
+               return sprintf("ADD `%s` %s", static::escape($fieldName), static::fieldCommand($parameters));
        }
 
        /**
@@ -183,7 +183,7 @@ class DbaDefinitionSqlWriter
         */
        public static function modifyTableField(string $fieldName, array $parameters): string
        {
-               return sprintf("MODIFY `%s` %s", static::escape($fieldName), self::FieldCommand($parameters, false));
+               return sprintf("MODIFY `%s` %s", static::escape($fieldName), self::fieldCommand($parameters, false));
        }
 
        /**
@@ -193,7 +193,7 @@ class DbaDefinitionSqlWriter
         * @param boolean $create Whether to include PRIMARY KEY statement (unused)
         * @return string SQL statement part
         */
-       public static function FieldCommand(array $parameters, bool $create = true): string
+       public static function fieldCommand(array $parameters, bool $create = true): string
        {
                $fieldstruct = $parameters['type'];
 
index 704e8bd944e35328854bcb16a219ff6f437ea93d..d09376d60ef2674fe9a63adb11a83d908954a75f 100644 (file)
@@ -122,7 +122,7 @@ class ExpirePosts
                $rows = 0;
                $userposts = DBA::select('post-user', [], ["`uri-id` not in (select `uri-id` from `post`)"]);
                while ($fields = DBA::fetch($userposts)) {
-                       $post_fields = DI::dbaDefinition()->getFieldsForTable('post', $fields);
+                       $post_fields = DI::dbaDefinition()->truncateFieldsForTable('post', $fields);
                        DBA::insert('post', $post_fields, Database::INSERT_IGNORE);
                        $rows++;
                }
@@ -136,7 +136,7 @@ class ExpirePosts
                $rows = 0;
                $userposts = DBA::select('post-user', [], ["`gravity` = ? AND `uri-id` not in (select `uri-id` from `post-thread`)", GRAVITY_PARENT]);
                while ($fields = DBA::fetch($userposts)) {
-                       $post_fields = DI::dbaDefinition()->getFieldsForTable('post-thread', $fields);
+                       $post_fields = DI::dbaDefinition()->truncateFieldsForTable('post-thread', $fields);
                        $post_fields['commented'] = $post_fields['changed'] = $post_fields['created'];
                        DBA::insert('post-thread', $post_fields, Database::INSERT_IGNORE);
                        $rows++;
@@ -151,7 +151,7 @@ class ExpirePosts
                $rows = 0;
                $userposts = DBA::select('post-user', [], ["`gravity` = ? AND `id` not in (select `post-user-id` from `post-thread-user`)", GRAVITY_PARENT]);
                while ($fields = DBA::fetch($userposts)) {
-                       $post_fields = DI::dbaDefinition()->getFieldsForTable('post-thread-user', $fields);
+                       $post_fields = DI::dbaDefinition()->truncateFieldsForTable('post-thread-user', $fields);
                        $post_fields['commented'] = $post_fields['changed'] = $post_fields['created'];
                        DBA::insert('post-thread-user', $post_fields, Database::INSERT_IGNORE);
                        $rows++;