From 06bff0b9b84d47c43f9bc8aff06a29d85ebb7ed0 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 14 Nov 2023 14:47:55 +0100 Subject: Add function param/return types, fix a lot more phpstorm complaints --- .../minilinux/inc/linuxbootentryhook.inc.php | 17 ++++---- modules-available/minilinux/inc/minilinux.inc.php | 47 ++++++++++------------ modules-available/minilinux/page.inc.php | 26 ++++++------ 3 files changed, 43 insertions(+), 47 deletions(-) (limited to 'modules-available/minilinux') diff --git a/modules-available/minilinux/inc/linuxbootentryhook.inc.php b/modules-available/minilinux/inc/linuxbootentryhook.inc.php index 03d7f11f..56b3db69 100644 --- a/modules-available/minilinux/inc/linuxbootentryhook.inc.php +++ b/modules-available/minilinux/inc/linuxbootentryhook.inc.php @@ -10,9 +10,9 @@ class LinuxBootEntryHook extends BootEntryHook { - public function name() + public function name(): string { - return Dictionary::translateFileModule('minilinux', 'module', 'module_name', true); + return Dictionary::translateFileModule('minilinux', 'module', 'module_name'); } public function extraFields(): array @@ -44,7 +44,7 @@ class LinuxBootEntryHook extends BootEntryHook $array = []; $array[] = new HookEntryGroup($this->name(), [ new HookEntry('default', - Dictionary::translateFileModule('minilinux', 'module', 'default_boot_entry', true), + Dictionary::translateFileModule('minilinux', 'module', 'default_boot_entry'), MiniLinux::updateCurrentBootSetting()) ]); $branches = Database::queryAll('SELECT sourceid, branchid, title FROM minilinux_branch ORDER BY title'); @@ -56,7 +56,7 @@ class LinuxBootEntryHook extends BootEntryHook new HookEntry($branch['branchid'], $branch['branchid'] . ' ' . Dictionary::translateFileModule('minilinux', 'module', - 'latest_of_branch', true), + 'latest_of_branch'), true), ]; foreach ($versions[$branch['branchid']] as $version) { @@ -64,7 +64,7 @@ class LinuxBootEntryHook extends BootEntryHook $title = $version['versionid'] . ' ' . $version['title']; if (!$valid) { $title .= ' ' . Dictionary::translateFileModule('minilinux', 'module', - 'not_installed_hint', true); + 'not_installed_hint'); } $group[] = new HookEntry($version['versionid'], $title, $valid); } @@ -75,10 +75,9 @@ class LinuxBootEntryHook extends BootEntryHook } /** - * @param $localData - * @return BootEntry the actual boot entry instance for given entry, false if invalid id + * @return ?BootEntry the actual boot entry instance for given entry, false if invalid id */ - public function getBootEntryInternal($localData): BootEntry + public function getBootEntryInternal(array $localData): ?BootEntry { $id = $localData['id']; if ($id === 'default') { // Special case @@ -183,7 +182,7 @@ class LinuxBootEntryHook extends BootEntryHook return $exec; } - public function isValidId($id) + public function isValidId(string $id): bool { if ($id === 'default') return true; // Meta-version that links to whatever the default is set to diff --git a/modules-available/minilinux/inc/minilinux.inc.php b/modules-available/minilinux/inc/minilinux.inc.php index daae7048..9c1b9011 100644 --- a/modules-available/minilinux/inc/minilinux.inc.php +++ b/modules-available/minilinux/inc/minilinux.inc.php @@ -19,7 +19,7 @@ class MiniLinux * Query all known sources for metadata * @return int number of sources query was just initialized for */ - public static function updateList() + public static function updateList(): int { $stamp = time(); $last = Property::get(self::PROPERTY_KEY_FETCHTIME); @@ -49,10 +49,11 @@ class MiniLinux /** * Called when downloading metadata from a specific update source is finished - * @param mixed $task task structure + * + * @param array $task task structure * @param string $sourceid see minilinux_source table */ - public static function listDownloadCallback($task, $sourceid) + public static function listDownloadCallback(array $task, string $sourceid): void { if (!Taskmanager::isFinished($task)) return; @@ -177,7 +178,7 @@ class MiniLinux ]); } - private static function isValidIdPart($str) + private static function isValidIdPart(string $str): bool { return preg_match('/^[a-z0-9_\-]+$/', $str) > 0; } @@ -186,10 +187,10 @@ class MiniLinux * Download of specific version */ - public static function validateDownloadTask($versionid, $taskid) + public static function validateDownloadTask(string $versionid, ?string $taskid): ?string { if ($taskid === null) - return false; + return null; $task = Taskmanager::status($taskid); if (Taskmanager::isTask($task) && !Taskmanager::isFailed($task) && (is_dir(CONFIG_HTTP_DIR . '/' . $versionid) || !Taskmanager::isFinished($task))) @@ -197,15 +198,13 @@ class MiniLinux Database::exec('UPDATE minilinux_version SET taskid = NULL WHERE versionid = :versionid AND taskid = :taskid', ['versionid' => $versionid, 'taskid' => $taskid]); - return false; + return null; } /** * Download the files for the given version id - * @param $versionid - * @return bool */ - public static function downloadVersion($versionid) + public static function downloadVersion(string $versionid): ?string { $ver = Database::queryFirst('SELECT s.url, s.pubkey, v.versionid, v.taskid, v.data FROM minilinux_version v INNER JOIN minilinux_branch b USING (branchid) @@ -213,17 +212,17 @@ class MiniLinux WHERE versionid = :versionid', ['versionid' => $versionid]); if ($ver === false) - return false; + return null; $taskid = self::validateDownloadTask($versionid, $ver['taskid']); - if ($taskid !== false) + if ($taskid !== null) return $taskid; $data = json_decode($ver['data'], true); if (!is_array($data)) { EventLog::warning("Cannot download Linux '$versionid': Corrupted meta data.", $ver['data']); - return false; + return null; } if (empty($data['files'])) - return false; + return null; $list = []; $legacyDir = preg_replace(',^[^/]*/,', '', $versionid); foreach ($data['files'] as $file) { @@ -242,6 +241,7 @@ class MiniLinux Database::exec('LOCK TABLES minilinux_version WRITE'); $aff = Database::exec('UPDATE minilinux_version SET taskid = :taskid WHERE versionid = :versionid AND taskid IS NULL', ['taskid' => $uuid, 'versionid' => $versionid]); + $task = false; if ($aff > 0) { $task = Taskmanager::submit('DownloadFiles', [ 'id' => $uuid, @@ -252,10 +252,8 @@ class MiniLinux if (Taskmanager::isFailed($task)) { $task = false; } else { - $task = $task['id']; + $task = (string)$task['id']; } - } else { - $task = false; } Database::exec('UNLOCK TABLES'); if ($task !== false) { @@ -269,7 +267,7 @@ class MiniLinux return $task; } - public static function fileToId($versionid, $fileName) + public static function fileToId(string $versionid, string $fileName): string { return 'x' . substr(md5($fileName . $versionid), 0, 8); } @@ -282,7 +280,7 @@ class MiniLinux * Generate messages regarding setup und update availability. * @return bool true if severe problems were found, false otherwise */ - public static function generateUpdateNotice() + public static function generateUpdateNotice(): bool { // Messages in here are with module name, as required by the // main-warning hook. @@ -325,7 +323,7 @@ class MiniLinux * actually installed locally. * @return bool true if installed locally, false otherwise */ - public static function updateCurrentBootSetting() + public static function updateCurrentBootSetting(): bool { $default = Property::get(self::PROPERTY_DEFAULT_BOOT); if ($default === false) @@ -371,7 +369,7 @@ class MiniLinux } } - public static function queryAllVersionsByBranch() + public static function queryAllVersionsByBranch(): array { $list = []; $res = Database::simpleQuery('SELECT branchid, versionid, title, Length(description) AS desclen, @@ -401,11 +399,12 @@ class MiniLinux * Check whether an optionally required stage4 is available. * Return true if there is no stage4, otherwise check filesystem, * or try to request from local dnbd3-server. + * * @param array $data decoded data column from minilinux_version * @param string[] $errors in array of error messages if not available * @return bool true if stage4 is available or none required */ - public static function checkStage4($data, &$errors = false) + public static function checkStage4(array $data, &$errors = false): bool { $errors = []; $image = false; @@ -506,8 +505,6 @@ class MiniLinux if (!isset($data['id'])) continue; $id = self::resolveEntryId($data['id']); - if ($id === false) - continue; $new = [ 'entryids' => [$row['entryid']], 'menus' => explode(',', $row['menus'] ?? ''), @@ -546,7 +543,7 @@ class MiniLinux * Take a configured versionid from a bootentry (serversetup module) and translate * it, in case it's "default" or just a branch name. */ - private static function resolveEntryId($id) + private static function resolveEntryId(string $id): string { if ($id === 'default') { // Special case $id = Property::get(MiniLinux::PROPERTY_DEFAULT_BOOT_EFFECTIVE); diff --git a/modules-available/minilinux/page.inc.php b/modules-available/minilinux/page.inc.php index 2099b8c5..349bbfad 100644 --- a/modules-available/minilinux/page.inc.php +++ b/modules-available/minilinux/page.inc.php @@ -25,8 +25,8 @@ class Page_MiniLinux extends Page } User::assertPermission('view'); - Dashboard::addSubmenu('?do=minilinux', Dictionary::translate('menu-versions', true)); - Dashboard::addSubmenu('?do=minilinux&show=sources', Dictionary::translate('menu-sources', true)); + Dashboard::addSubmenu('?do=minilinux', Dictionary::translate('menu-versions')); + Dashboard::addSubmenu('?do=minilinux&show=sources', Dictionary::translate('menu-sources')); } protected function doRender() @@ -107,7 +107,7 @@ class Page_MiniLinux extends Page } } - private function renderVersionList($versions, $usage) + private function renderVersionList(array $versions, array $usage): string { $def = Property::get(MiniLinux::PROPERTY_DEFAULT_BOOT); //$eff = Property::get(MiniLinux::PROPERTY_DEFAULT_BOOT_EFFECTIVE); @@ -152,7 +152,7 @@ class Page_MiniLinux extends Page } $data['versionid'] = $versionid; $data['dltask'] = MiniLinux::validateDownloadTask($versionid, $ver['taskid']); - $data['verify_button'] = !$verify && $data['dltask'] === false; + $data['verify_button'] = !$verify && $data['dltask'] === null; if (is_array($data['files'])) { $valid = true; $sort = []; @@ -176,7 +176,7 @@ class Page_MiniLinux extends Page if (isset($file['mtime'])) { $file['mtime_s'] = Util::prettyTime($file['mtime']); } - if ($data['dltask']) { + if ($data['dltask'] !== null) { $file['fileid'] = MiniLinux::fileToId($versionid, $file['name']); } } @@ -191,7 +191,7 @@ class Page_MiniLinux extends Page MiniLinux::setInstalledState($versionid, true); } } - if ($data['dltask'] !== false || $ver['installed']) { + if ($data['dltask'] !== null || $ver['installed']) { MiniLinux::checkStage4($data, $data['s4_errors']); } $data['changelog'] = Util::markup($ver['description'] ?? ''); @@ -204,7 +204,7 @@ class Page_MiniLinux extends Page const FILE_CHECKSUM_BAD = 3; const FILE_NOT_READABLE = 4; - private function getFileState($versionid, $file, $verify) + private function getFileState(string $versionid, array $file, bool $verify): int { $path = CONFIG_HTTP_DIR . '/' . $versionid . '/' . $file['name']; if (!is_file($path)) @@ -231,15 +231,15 @@ class Page_MiniLinux extends Page { switch ($state) { case self::FILE_CHECKSUM_BAD: - return Dictionary::translate('file-checksum-bad', true); + return Dictionary::translate('file-checksum-bad'); case self::FILE_SIZE_MISMATCH: - return Dictionary::translate('file-size-mismatch', true); + return Dictionary::translate('file-size-mismatch'); case self::FILE_MISSING: - return Dictionary::translate('file-missing', true); + return Dictionary::translate('file-missing'); case self::FILE_NOT_READABLE: - return Dictionary::translate('file-not-readable', true); + return Dictionary::translate('file-not-readable'); case self::FILE_OK: - return Dictionary::translate('file-ok', true); + return Dictionary::translate('file-ok'); } return '???'; } @@ -252,7 +252,7 @@ class Page_MiniLinux extends Page die('No version'); } $task = MiniLinux::downloadVersion($version); - if ($task === false) { + if ($task === null) { Message::addError('no-such-version', $version); Message::renderList(); } else { -- cgit v1.2.3-55-g7522