diff --git a/DataStorage/Database/Connection/ConnectionAbstract.php b/DataStorage/Database/Connection/ConnectionAbstract.php index c04c18bde..1156bf05f 100644 --- a/DataStorage/Database/Connection/ConnectionAbstract.php +++ b/DataStorage/Database/Connection/ConnectionAbstract.php @@ -60,10 +60,10 @@ abstract class ConnectionAbstract implements ConnectionInterface /** * Database data. * - * @var array{db:string, host:string, port:int, login:string, password:string, database:string, prefix:string} + * @var array{db:string, database:string, prefix:string}|array{db:string, host:string, port:int, login:string, password:string, database:string, prefix:string} * @since 1.0.0 */ - protected array $dbdata = []; + protected array $dbdata; /** * Database type. @@ -146,7 +146,7 @@ abstract class ConnectionAbstract implements ConnectionInterface */ public function getPort() : int { - return (int) $this->dbdata['port'] ?? 0; + return (int) ($this->dbdata['port'] ?? 0); } /** @@ -178,7 +178,9 @@ abstract class ConnectionAbstract implements ConnectionInterface } /** - * array{db:string, host:string, port:int, login:string, password:string, database:string, prefix:string} $dbdata the basic database information for establishing a connection + * Connect to database + * + * @param null|array{db:string, database:string, prefix:string}|array{db:string, host:string, port:int, login:string, password:string, database:string, prefix:string} $dbdata the basic database information for establishing a connection * * @return void * diff --git a/DataStorage/Database/Connection/ConnectionFactory.php b/DataStorage/Database/Connection/ConnectionFactory.php index 5ce0b8d5d..c7b8a9dea 100644 --- a/DataStorage/Database/Connection/ConnectionFactory.php +++ b/DataStorage/Database/Connection/ConnectionFactory.php @@ -41,7 +41,7 @@ final class ConnectionFactory * * Overwrites current connection if existing * - * @param array{db:string, host:string, port:int, login:string, password:string, database:string, prefix:string} $dbdata the basic database information for establishing a connection + * @param array{db:string, database:string, prefix:string}|array{db:string, host:string, port:int, login:string, password:string, database:string, prefix:string} $dbdata the basic database information for establishing a connection * * @return ConnectionAbstract * diff --git a/DataStorage/Database/Connection/SQLiteConnection.php b/DataStorage/Database/Connection/SQLiteConnection.php index 09184c5d8..7e56ab5c1 100644 --- a/DataStorage/Database/Connection/SQLiteConnection.php +++ b/DataStorage/Database/Connection/SQLiteConnection.php @@ -38,7 +38,7 @@ final class SQLiteConnection extends ConnectionAbstract * * Creates the database object and overwrites all default values. * - * @param array{db:string, host:string, port:int, login:string, password:string, database:string, prefix:string} $dbdata the basic database information for establishing a connection + * @param array{db:string, database:string, prefix:string} $dbdata the basic database information for establishing a connection * * @since 1.0.0 */ @@ -58,7 +58,13 @@ final class SQLiteConnection extends ConnectionAbstract } /** - * {@inheritdoc} + * Connect to database + * + * @param null|array{db:string, database:string, prefix:string} $dbdata the basic database information for establishing a connection + * + * @return void + * + * @since 1.0.0 */ public function connect(array $dbdata = null) : void { diff --git a/DataStorage/Database/Connection/SqlServerConnection.php b/DataStorage/Database/Connection/SqlServerConnection.php index ab4a6b2a9..fa4c91de6 100644 --- a/DataStorage/Database/Connection/SqlServerConnection.php +++ b/DataStorage/Database/Connection/SqlServerConnection.php @@ -65,7 +65,6 @@ final class SqlServerConnection extends ConnectionAbstract $this->close(); $this->dbdata = $dbdata ?? $this->dbdata; - $this->prefix = $dbdata['prefix']; if (!isset($this->dbdata['db'], $this->dbdata['host'], $this->dbdata['port'], $this->dbdata['database'], $this->dbdata['login'], $this->dbdata['password']) || !DatabaseType::isValidValue($this->dbdata['db']) @@ -74,6 +73,9 @@ final class SqlServerConnection extends ConnectionAbstract throw new InvalidConnectionConfigException((string) \json_encode($this->dbdata)); } + $this->close(); + $this->prefix = $dbdata['prefix'] ?? ''; + try { $this->con = new \PDO('sqlsrv:Server=' . $this->dbdata['host'] . ',' . $this->dbdata['port'] . ';Database=' . $this->dbdata['database'] . ';ConnectionPooling=0', $this->dbdata['login'], $this->dbdata['password']); $this->con->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false); diff --git a/DataStorage/Database/DatabasePool.php b/DataStorage/Database/DatabasePool.php index f6db68bb3..4f2ec1201 100644 --- a/DataStorage/Database/DatabasePool.php +++ b/DataStorage/Database/DatabasePool.php @@ -104,8 +104,8 @@ final class DatabasePool implements DataStoragePoolInterface /** * Create database. * - * @param string $key Database key - * @param array $config Database config data + * @param string $key Database key + * @param array{db:string, database:string, prefix:string}|array{db:string, host:string, port:int, login:string, password:string, database:string, prefix:string} $config Database config data * * @return bool * diff --git a/Localization/Defaults/Currency.php b/Localization/Defaults/Currency.php index cab40f87a..ee0592a5f 100644 --- a/Localization/Defaults/Currency.php +++ b/Localization/Defaults/Currency.php @@ -62,7 +62,7 @@ final class Currency * @var string * @since 1.0.0 */ - private string $number = 0; + private string $number = ''; /** * Currency subunits. @@ -78,7 +78,7 @@ final class Currency * @var string * @since 1.0.0 */ - private string $decimals = 0; + private string $decimals = ''; /** * Currency countries. diff --git a/Localization/L11nManager.php b/Localization/L11nManager.php index a2a874155..be284fc66 100644 --- a/Localization/L11nManager.php +++ b/Localization/L11nManager.php @@ -30,7 +30,7 @@ final class L11nManager /** * Language. * - * @var array + * @var array>> * @since 1.0.0 */ private array $language = []; @@ -128,7 +128,7 @@ final class L11nManager * @param string $language Language iso code * @param string $module Module name * - * @return array|array> + * @return array>|array * * @since 1.0.0 */ diff --git a/Log/FileLogger.php b/Log/FileLogger.php index e97a41126..8c30cf171 100644 --- a/Log/FileLogger.php +++ b/Log/FileLogger.php @@ -189,7 +189,7 @@ final class FileLogger implements LoggerInterface $temp = \explode(' ', \microtime()); $mtime = ((float) $temp[1]) + ((float) $temp[0]); - self::$timings[$id] = ['start' => $mtime]; + self::$timings[$id] = ['start' => $mtime, 'end' => 0.0, 'time' => 0.0]; return true; } diff --git a/Math/Geometry/Shape/D2/Polygon.php b/Math/Geometry/Shape/D2/Polygon.php index 69fe016e8..92c80aca8 100644 --- a/Math/Geometry/Shape/D2/Polygon.php +++ b/Math/Geometry/Shape/D2/Polygon.php @@ -45,7 +45,7 @@ final class Polygon implements D2ShapeInterface /** * Constructor. * - * @param array[] $coord 2 Dimensional coordinate array where the indices are x and y + * @param array $coord 2 Dimensional coordinate array where the indices are x and y * * @example Polygon([['x' => 1, 'y' => 2], ['x' => ...], ...]) * @@ -59,7 +59,7 @@ final class Polygon implements D2ShapeInterface /** * Point polygon relative position * - * @param array $point Point location + * @param array{x:int|float, y:int|float} $point Point location * * @return int * @@ -76,8 +76,8 @@ final class Polygon implements D2ShapeInterface /** * Point polygon relative position * - * @param array $point Point location - * @param array> $polygon Polygon definition + * @param array{x:int|float, y:int|float} $point Point location + * @param array $polygon Polygon definition * * @return int -1 inside polygon 0 on vertice 1 outside * @@ -141,8 +141,8 @@ final class Polygon implements D2ShapeInterface /** * Is point on vertex? * - * @param array $point Point location - * @param array> $polygon Polygon definition + * @param array{x:int|float, y:int|float} $point Point location + * @param array $polygon Polygon definition * * @return bool * @@ -239,7 +239,7 @@ final class Polygon implements D2ShapeInterface /** * Get barycenter * - * @return array + * @return array{x:int|float, y:int|float} * * @since 1.0.0 */ diff --git a/Model/Html/Head.php b/Model/Html/Head.php index 2575800d2..77ff46fc9 100644 --- a/Model/Html/Head.php +++ b/Model/Html/Head.php @@ -49,7 +49,7 @@ final class Head implements RenderableInterface /** * Assets bound to this page instance. * - * @var array> + * @var array|array * @since 1.0.0 */ private array $assets = []; diff --git a/Module/ModuleManager.php b/Module/ModuleManager.php index abff38ddc..953d22df7 100644 --- a/Module/ModuleManager.php +++ b/Module/ModuleManager.php @@ -66,7 +66,7 @@ final class ModuleManager /** * Installed modules. * - * @var array + * @var array * @since 1.0.0 */ private array $installed = []; @@ -264,7 +264,7 @@ final class ModuleManager $content = \file_get_contents($path); $json = \json_decode($content === false ? '[]' : $content, true); - $this->all[$json['name']['internal']] = $json === false ? [] : $json; + $this->all[(string) ($json['name']['internal'] ?? '?')] = $json === false ? [] : $json; } } @@ -288,7 +288,7 @@ final class ModuleManager * * @param bool $useCache Use Cache * - * @return array + * @return array * * @since 1.0.0 */ @@ -311,10 +311,7 @@ final class ModuleManager // throw new PathException($path); } - $content = \file_get_contents($path); - $json = \json_decode($content === false ? '[]' : $content, true); - - $this->installed[$json['name']['internal']] = $json === false ? [] : $json; + $this->installed[$module] = $this->loadInfo($module); } } diff --git a/Stdlib/Queue/PriorityQueue.php b/Stdlib/Queue/PriorityQueue.php index 6311fa54f..2153ec1c9 100644 --- a/Stdlib/Queue/PriorityQueue.php +++ b/Stdlib/Queue/PriorityQueue.php @@ -231,13 +231,13 @@ class PriorityQueue implements \Countable, \Serializable /** * Delete element. * - * @param mixed $id Element to delete + * @param int $id Element to delete * * @return bool * * @since 1.0.0 */ - public function delete($id) : bool + public function delete(int $id) : bool { if (isset($this->queue[$id])) { unset($this->queue[$id]); @@ -251,14 +251,14 @@ class PriorityQueue implements \Countable, \Serializable /** * Set element priority. * - * @param mixed $id Element ID + * @param int $id Element ID * @param float $priority Element priority * * @return void * * @since 1.0.0 */ - public function setPriority($id, float $priority) : void + public function setPriority(int $id, float $priority) : void { if ($this->type === PriorityMode::FIFO || $this->type === PriorityMode::LIFO) { $this->queue[$id]['priority'] = $priority; @@ -279,13 +279,13 @@ class PriorityQueue implements \Countable, \Serializable /** * Get element * - * @param mixed $id Element ID + * @param int $id Element ID * * @return array * * @since 1.0.0 */ - public function get($id) : array + public function get(int $id) : array { return $this->queue[$id] ?? []; } @@ -293,7 +293,7 @@ class PriorityQueue implements \Countable, \Serializable /** * Get element * - * @return array + * @return array * * @since 1.0.0 */ diff --git a/System/File/Storage.php b/System/File/Storage.php index 9be64609b..b252fb115 100644 --- a/System/File/Storage.php +++ b/System/File/Storage.php @@ -29,7 +29,7 @@ final class Storage /** * Registered storage. * - * @var array + * @var array * @since 1.0.0 */ private static array $registered = []; @@ -87,8 +87,8 @@ final class Storage /** * Register storage environment. * - * @param string $name Name of the environment - * @param StorageAbstract|string $class Class to register. This can be either a namespace path, a anonymous class or storage implementation. + * @param string $name Name of the environment + * @param ContainerInterface|StorageAbstract|string $class Class to register. This can be either a namespace path, a anonymous class or storage implementation. * * @return bool * diff --git a/Utils/Encoding/Huffman/Dictionary.php b/Utils/Encoding/Huffman/Dictionary.php index 75e3e96a6..f702425b0 100644 --- a/Utils/Encoding/Huffman/Dictionary.php +++ b/Utils/Encoding/Huffman/Dictionary.php @@ -77,6 +77,7 @@ final class Dictionary $this->min = -1; $this->max = -1; + /** @var array> $count */ $count = []; while (isset($source[0])) { $count[] = [\substr_count($source, $source[0]), $source[0]]; @@ -98,8 +99,8 @@ final class Dictionary /** * Fill dictionary. * - * @param array> $entry Source data to generate dictionary from - * @param string $value Dictionary value + * @param array> $entry Source data to generate dictionary from + * @param string $value Dictionary value * * @return void * diff --git a/Utils/Git/Commit.php b/Utils/Git/Commit.php index 80826d234..c72b8d6d6 100644 --- a/Utils/Git/Commit.php +++ b/Utils/Git/Commit.php @@ -83,7 +83,7 @@ class Commit /** * Files. * - * @var array + * @var array> * @since 1.0.0 */ private array $files = []; @@ -165,7 +165,7 @@ class Commit /** * Get files of this commit. * - * @return string[] + * @return array> * * @since 1.0.0 */