From 8d2e0761e0fb05986db973cc1cea3a93db1d67b2 Mon Sep 17 00:00:00 2001 From: odain Date: Tue, 13 Jan 2026 15:52:32 +0100 Subject: [PATCH] setup: phpstan level 0 --- setup/ModuleInstallationRepository.php | 16 +++++++++++++--- setup/ajax.dataloader.php | 4 ++-- setup/email.test.php | 8 ++++---- .../ModelReflectionSerializer.php | 4 ++-- .../dependencyexpression.class.inc.php | 2 +- .../moduledependencysort.class.inc.php | 8 ++++---- setup/modulediscovery/ModuleFileReader.php | 16 ++++++++-------- setup/runtimeenv.class.inc.php | 5 ++--- setup/setuputils.class.inc.php | 2 +- setup/wizardcontroller.class.inc.php | 13 ------------- 10 files changed, 37 insertions(+), 41 deletions(-) diff --git a/setup/ModuleInstallationRepository.php b/setup/ModuleInstallationRepository.php index f98011dd5..63bd984d4 100644 --- a/setup/ModuleInstallationRepository.php +++ b/setup/ModuleInstallationRepository.php @@ -95,8 +95,17 @@ SQL; $aSelectInstall = CMDBSource::QueryToArray($sSQLQuery); } catch (MySQLException $e) { // No database or erroneous information - $this->log_error('Can not connect to the database: host: '.$oConfig->Get('db_host').', user:'.$oConfig->Get('db_user').', pwd:'.$oConfig->Get('db_pwd').', db name:'.$oConfig->Get('db_name')); - $this->log_error('Exception '.$e->getMessage()); + SetupLog::Error( + 'Can not connect to the database', + null, + [ + 'host' => $oConfig->Get('db_host'), + 'user' => $oConfig->Get('db_user'), + 'pwd:' => $oConfig->Get('db_pwd'), + 'db name' => $oConfig->Get('db_name'), + 'msg' => $e->getMessage(), + ] + ); return false; } @@ -129,7 +138,8 @@ SQL; // so assume that the datamodel version is equal to the application version $aResult['datamodel_version'] = $aResult['product_version']; } - $this->log_info("GetApplicationVersion returns: product_name: ".$aResult['product_name'].', product_version: '.$aResult['product_version']); + + SetupLog::Info(__METHOD__, null, ["product_name" => $aResult['product_name'], "product_version" => $aResult['product_version']]); return empty($aResult) ? false : $aResult; } diff --git a/setup/ajax.dataloader.php b/setup/ajax.dataloader.php index 3e9f498c1..50dae5701 100644 --- a/setup/ajax.dataloader.php +++ b/setup/ajax.dataloader.php @@ -127,7 +127,7 @@ header("Expires: Fri, 17 Jul 1970 05:00:00 GMT"); // Date in the past /** * Main program */ -$sOperation = Utils::ReadParam('operation', ''); +$sOperation = utils::ReadParam('operation', ''); try { SetupUtils::CheckSetupToken(); @@ -164,7 +164,7 @@ try { break; case 'toggle_use_symbolic_links': - $sUseSymbolicLinks = Utils::ReadParam('bUseSymbolicLinks', false); + $sUseSymbolicLinks = utils::ReadParam('bUseSymbolicLinks', false); $bUseSymbolicLinks = ($sUseSymbolicLinks === 'true'); MFCompiler::SetUseSymbolicLinksFlag($bUseSymbolicLinks); echo "toggle useSymbolicLinks flag : $bUseSymbolicLinks"; diff --git a/setup/email.test.php b/setup/email.test.php index 184a2124a..e5df5a275 100644 --- a/setup/email.test.php +++ b/setup/email.test.php @@ -34,7 +34,7 @@ require_once(APPROOT.'/application/startup.inc.php'); require_once(APPROOT.'/application/loginwebpage.class.inc.php'); LoginWebPage::DoLogin(true); // Check user rights and prompt if needed (must be admin) -$sOperation = Utils::ReadParam('operation', 'step1'); +$sOperation = utils::ReadParam('operation', 'step1'); $oP = new SetupPage('iTop email test utility'); // Although this page doesn't expose sensitive info, with it we can send multiple emails @@ -208,7 +208,7 @@ function DisplayStep2(SetupPage $oP, $sFrom, $sTo) $oP->add("

Sending an email to '".htmlentities($sTo, ENT_QUOTES, 'utf-8')."'... (From: '".htmlentities($sFrom, ENT_QUOTES, 'utf-8')."')

\n"); $oP->add("
\n"); - $oEmail = new Email(); + $oEmail = new EMail(); $oEmail->SetRecipientTO($sTo); $oEmail->SetRecipientFrom($sFrom); $oEmail->SetSubject("Test iTop"); @@ -256,8 +256,8 @@ try { case 'step2': $oP->no_cache(); - $sTo = Utils::ReadParam('to', '', false, 'raw_data'); - $sFrom = Utils::ReadParam('from', '', false, 'raw_data'); + $sTo = utils::ReadParam('to', '', false, 'raw_data'); + $sFrom = utils::ReadParam('from', '', false, 'raw_data'); DisplayStep2($oP, $sFrom, $sTo); break; diff --git a/setup/feature_removal/ModelReflectionSerializer.php b/setup/feature_removal/ModelReflectionSerializer.php index 2468c963b..ba4f8bc51 100644 --- a/setup/feature_removal/ModelReflectionSerializer.php +++ b/setup/feature_removal/ModelReflectionSerializer.php @@ -7,7 +7,7 @@ use CoreException; use Exception; use IssueLog; use SetupLog; -use Utils; +use utils; class ModelReflectionSerializer { @@ -34,7 +34,7 @@ class ModelReflectionSerializer public function GetModelFromEnvironment(string $sEnv): array { IssueLog::Info(__METHOD__, null, ['env' => $sEnv]); - $sPHPExec = trim(Utils::GetConfig()->Get('php_path')); + $sPHPExec = trim(utils::GetConfig()->Get('php_path')); $sOutput = ""; $iRes = 0; diff --git a/setup/moduledependency/dependencyexpression.class.inc.php b/setup/moduledependency/dependencyexpression.class.inc.php index e0d166c95..90537df35 100644 --- a/setup/moduledependency/dependencyexpression.class.inc.php +++ b/setup/moduledependency/dependencyexpression.class.inc.php @@ -5,7 +5,7 @@ namespace Combodo\iTop\Setup\ModuleDependency; require_once(APPROOT.'/setup/runtimeenv.class.inc.php'); use Combodo\iTop\PhpParser\Evaluation\PhpExpressionEvaluator; -use ModuleFileReaderException; +use Combodo\iTop\Setup\ModuleDiscovery\ModuleFileReaderException; use RunTimeEnvironment; /** diff --git a/setup/moduledependency/moduledependencysort.class.inc.php b/setup/moduledependency/moduledependencysort.class.inc.php index 099167c8a..65c81a056 100644 --- a/setup/moduledependency/moduledependencysort.class.inc.php +++ b/setup/moduledependency/moduledependencysort.class.inc.php @@ -19,16 +19,16 @@ class ModuleDependencySort final public static function GetInstance(): ModuleDependencySort { - if (!isset(static::$oInstance)) { - static::$oInstance = new static(); + if (!isset(self::$oInstance)) { + self::$oInstance = new ModuleDependencySort(); } - return static::$oInstance; + return self::$oInstance; } final public static function SetInstance(?ModuleDependencySort $oInstance): void { - static::$oInstance = $oInstance; + self::$oInstance = $oInstance; } /** diff --git a/setup/modulediscovery/ModuleFileReader.php b/setup/modulediscovery/ModuleFileReader.php index 048388000..b13360fa8 100644 --- a/setup/modulediscovery/ModuleFileReader.php +++ b/setup/modulediscovery/ModuleFileReader.php @@ -7,15 +7,15 @@ use CoreException; use Exception; use ParseError; use PhpParser\Error; +use PhpParser\Node\Arg; +use PhpParser\Node\Expr\Array_; +use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\StaticCall; +use PhpParser\Node\Scalar\String_; +use PhpParser\Node\Stmt\ElseIf_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; use PhpParser\ParserFactory; -use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Stmt\ElseIf_; -use PhpParser\Node\Expr\Array_; -use PhpParser\Node\Scalar\String_; -use PhpParser\Node\Arg; require_once __DIR__.'/ModuleFileReaderException.php'; require_once APPROOT.'sources/PhpParser/Evaluation/PhpExpressionEvaluator.php'; @@ -49,11 +49,11 @@ class ModuleFileReader final public static function GetInstance(): ModuleFileReader { - if (!isset(static::$oInstance)) { - static::$oInstance = new static(); + if (!isset(self::$oInstance)) { + self::$oInstance = new ModuleFileReader(); } - return static::$oInstance; + return self::$oInstance; } final public static function SetInstance(?ModuleFileReader $oInstance): void diff --git a/setup/runtimeenv.class.inc.php b/setup/runtimeenv.class.inc.php index 1464fd058..6147a64f7 100644 --- a/setup/runtimeenv.class.inc.php +++ b/setup/runtimeenv.class.inc.php @@ -126,9 +126,8 @@ class RunTimeEnvironment * from the given file * @param $oConfig object The configuration (volatile, not necessarily already on disk) * @param $bModelOnly boolean Whether or not to allow loading a data model with no corresponding DB - * @return none */ - public function InitDataModel($oConfig, $bModelOnly = true, $bUseCache = false) + public function InitDataModel($oConfig, $bModelOnly = true, $bUseCache = false): void { require_once APPROOT.'/setup/moduleinstallation.class.inc.php'; @@ -896,7 +895,7 @@ class RunTimeEnvironment try { call_user_func_array($aCallSpec, $aArgs); } catch (Exception $e) { - $sModuleId = isset($sModuleId) ? $sModuleId : ""; + $sModuleId = $aModuleInfo[ModuleFileReader::MODULE_INFO_ID] ?? ""; $sErrorMessage = "Module $sModuleId : error when calling module installer class $sModuleInstallerClass for $sHandlerName handler"; $aExceptionContextData = [ 'ModulelId' => $sModuleId, diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index e88befbe8..3706d3bca 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -599,7 +599,7 @@ class SetupUtils // create and test destination location // $sDestDir = dirname($sDBBackupPath); - setuputils::builddir($sDestDir); + SetupUtils::builddir($sDestDir); if (!is_dir($sDestDir)) { $aResult[] = new CheckResult(CheckResult::ERROR, "$sDestDir does not exist and could not be created."); } diff --git a/setup/wizardcontroller.class.inc.php b/setup/wizardcontroller.class.inc.php index 589c5c8a3..bd2cfa8f2 100644 --- a/setup/wizardcontroller.class.inc.php +++ b/setup/wizardcontroller.class.inc.php @@ -16,7 +16,6 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -use Combodo\iTop\Application\UI\Base\Component\Html\Html; use Combodo\iTop\Application\WebPage\WebPage; /** @@ -402,18 +401,6 @@ abstract class WizardStep * @return void */ abstract public function Display(WebPage $oPage); - /** - * Displays the wizard page for the current class/state - * return UIBlock - * The name of the input fields (and their id if one is supplied) MUST NOT start with "_" - * (this is reserved for the wizard's own parameters) - * @return \Combodo\iTop\Application\UI\Base\UIBlock - * @since 3.0.0 - */ - public function DisplayBlock(WebPage $oPage) - { - return new Html($this->Display($oPage)); - } /** * Processes the page's parameters and (if moving forward) returns the next step/state to be displayed