X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FDatabase%2FDBStructure.php;h=abbac4e781795a700b10c52c95cbecf0abc0aeb2;hb=3de1fc3097cc7a1e38bf1a0c3cae5ae4ec8067eb;hp=1a556b7bc7901a30cfa3d9cea38bcc9d8ed15119;hpb=d53ff9c34d86ee4b7650ae82af458b7dad6cf4fb;p=friendica.git diff --git a/src/Database/DBStructure.php b/src/Database/DBStructure.php index 1a556b7bc7..abbac4e781 100644 --- a/src/Database/DBStructure.php +++ b/src/Database/DBStructure.php @@ -12,10 +12,7 @@ use Friendica\Core\L10n; use Friendica\Core\Logger; use Friendica\Util\DateTimeFormat; -require_once 'boot.php'; require_once 'include/dba.php'; -require_once 'include/enotify.php'; -require_once 'include/text.php'; /** * @brief This class contain functions for the database management @@ -77,9 +74,9 @@ class DBStructure return L10n::t('Errors encountered performing database changes: ') . $message . EOL; } - public static function printStructure() + public static function printStructure($basePath) { - $database = self::definition(false); + $database = self::definition($basePath, false); echo "-- ------------------------------------------\n"; echo "-- " . FRIENDICA_PLATFORM . " " . FRIENDICA_VERSION . " (" . FRIENDICA_CODENAME, ")\n"; @@ -101,15 +98,15 @@ class DBStructure * * @see config/dbstructure.config.php * @param boolean $with_addons_structure Whether to tack on addons additional tables + * @param string $basePath The base path of this application * @return array * @throws Exception */ - public static function definition($with_addons_structure = true) + public static function definition($basePath, $with_addons_structure = true) { if (!self::$definition) { - $a = \Friendica\BaseObject::getApp(); - $filename = $a->getBasePath() . '/config/dbstructure.config.php'; + $filename = $basePath . '/config/dbstructure.config.php'; if (!is_readable($filename)) { throw new Exception('Missing database structure config file config/dbstructure.config.php'); @@ -250,14 +247,16 @@ class DBStructure /** * Updates DB structure and returns eventual errors messages * - * @param bool $verbose - * @param bool $action Whether to actually apply the update - * @param bool $install Is this the initial update during the installation? - * @param array $tables An array of the database tables - * @param array $definition An array of the definition tables + * @param string $basePath The base path of this application + * @param bool $verbose + * @param bool $action Whether to actually apply the update + * @param bool $install Is this the initial update during the installation? + * @param array $tables An array of the database tables + * @param array $definition An array of the definition tables * @return string Empty string if the update is successful, error messages otherwise + * @throws Exception */ - public static function update($verbose, $action, $install = false, array $tables = null, array $definition = null) + public static function update($basePath, $verbose, $action, $install = false, array $tables = null, array $definition = null) { if ($action && !$install) { Config::set('system', 'maintenance', 1); @@ -286,7 +285,7 @@ class DBStructure // Get the definition if (is_null($definition)) { - $definition = self::definition(); + $definition = self::definition($basePath); } // MySQL >= 5.7.4 doesn't support the IGNORE keyword in ALTER TABLE statements @@ -720,7 +719,7 @@ class DBStructure * @param int $type The type of renaming (Default is Column) * * @return boolean Was the renaming successful? - * + * @throws Exception */ public static function rename($table, $columns, $type = self::RENAME_COLUMN) { @@ -780,6 +779,7 @@ class DBStructure * @param array $columns Columns to check ( Syntax: [ $col1, $col2, .. ] ) * * @return boolean Does the table exist? + * @throws Exception */ public static function existsColumn($table, $columns = []) { @@ -820,6 +820,7 @@ class DBStructure * @param string $table Table name * * @return boolean Does the table exist? + * @throws Exception */ public static function existsTable($table) { @@ -843,4 +844,18 @@ class DBStructure return $retval; } + + /** + * Returns the columns of a table + * + * @param string $table Table name + * + * @return array An array of the table columns + * @throws Exception + */ + public static function getColumns($table) + { + $stmtColumns = DBA::p("SHOW COLUMNS FROM `" . $table . "`"); + return DBA::toArray($stmtColumns); + } }