N°8796 - Add PHP code style validation in iTop and extensions - format whole code base

This commit is contained in:
odain
2025-11-07 15:39:53 +01:00
parent 12f23113f5
commit 890a2568c8
2110 changed files with 53099 additions and 63885 deletions

View File

@@ -1,9 +1,10 @@
<?php
// Copyright (C) 2024 Combodo SAS
//
// This file is part of iTop.
//
// iTop is free software; you can redistribute it and/or modify
// iTop is free software; you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
@@ -16,7 +17,6 @@
// You should have received a copy of the GNU Affero General Public License
// along with iTop. If not, see <http://www.gnu.org/licenses/>
/**
* SQLUnionQuery
* build a mySQL compatible SQL query
@@ -25,7 +25,6 @@
* @license http://opensource.org/licenses/AGPL-3.0
*/
/**
* SQLUnionQuery
* build a mySQL compatible SQL query
@@ -33,20 +32,18 @@
* @package iTopORM
*/
class SQLUnionQuery extends SQLQuery
{
protected $aQueries;
protected $aGroupBy;
protected $aSelectExpr;
public function __construct($aQueries, $aGroupBy, $aSelectExpr = array())
public function __construct($aQueries, $aGroupBy, $aSelectExpr = [])
{
parent::__construct();
$this->aQueries = array();
foreach ($aQueries as $oSQLQuery)
{
$this->aQueries = [];
foreach ($aQueries as $oSQLQuery) {
$this->aQueries[] = $oSQLQuery->DeepClone();
}
$this->aGroupBy = $aGroupBy;
@@ -55,9 +52,8 @@ class SQLUnionQuery extends SQLQuery
public function DisplayHtml()
{
$aQueriesHtml = array();
foreach ($this->aQueries as $oSQLQuery)
{
$aQueriesHtml = [];
foreach ($this->aQueries as $oSQLQuery) {
$aQueriesHtml[] = '<p>'.$oSQLQuery->DisplayHtml().'</p>';
}
echo implode('UNION', $aQueriesHtml);
@@ -65,8 +61,7 @@ class SQLUnionQuery extends SQLQuery
public function AddInnerJoin($oSQLQuery, $sLeftField, $sRightField, $sRightTable = '')
{
foreach ($this->aQueries as $oSubSQLQuery)
{
foreach ($this->aQueries as $oSubSQLQuery) {
$oSubSQLQuery->AddInnerJoin($oSQLQuery->DeepClone(), $sLeftField, $sRightField, $sRightTable = '');
}
}
@@ -75,7 +70,7 @@ class SQLUnionQuery extends SQLQuery
* @param array $aArgs
* @throws Exception
*/
public function RenderDelete($aArgs = array())
public function RenderDelete($aArgs = [])
{
throw new Exception(__class__.'::'.__function__.'Not implemented !');
}
@@ -86,7 +81,7 @@ class SQLUnionQuery extends SQLQuery
* @param array $aArgs
* @throws Exception
*/
public function RenderUpdate($aArgs = array())
public function RenderUpdate($aArgs = [])
{
throw new Exception(__class__.'::'.__function__.'Not implemented !');
}
@@ -104,47 +99,37 @@ class SQLUnionQuery extends SQLQuery
* @return string
* @throws \CoreException
*/
public function RenderSelect($aOrderBy = array(), $aArgs = array(), $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulQuery = false)
public function RenderSelect($aOrderBy = [], $aArgs = [], $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulQuery = false)
{
$this->m_bBeautifulQuery = $bBeautifulQuery;
$sLineSep = $this->m_bBeautifulQuery ? "\n" : '';
$aSelects = array();
foreach ($this->aQueries as $oSQLQuery)
{
$aSelects = [];
foreach ($this->aQueries as $oSQLQuery) {
// Render SELECTS without orderby/limit/count
/** @var \SQLObjectQuery $oSQLQuery */
$aSelects[] = $oSQLQuery->RenderSelect(array(), $aArgs, 0, 0, false, $bBeautifulQuery);
$aSelects[] = $oSQLQuery->RenderSelect([], $aArgs, 0, 0, false, $bBeautifulQuery);
}
if ($iLimitCount > 0)
{
if ($iLimitCount > 0) {
$sLimitStart = '(';
$sLimit = 'LIMIT '.$iLimitStart.', '.$iLimitCount;
$sLimitEnd = ')';
}
else
{
} else {
$sLimitStart = '';
$sLimit = '';
$sLimitEnd = '';
}
if ($bGetCount)
{
if ($bGetCount) {
$sSelects = "{$sLimitStart}".implode(" {$sLimit}{$sLimitEnd}{$sLineSep} UNION{$sLineSep} {$sLimitStart}", $aSelects)." {$sLimit}{$sLimitEnd}";
$sFrom = "({$sLineSep}{$sSelects}{$sLineSep}) as __selects__";
$sSQL = "SELECT COUNT(*) AS COUNT FROM (SELECT$sLineSep 1 $sLineSep FROM {$sFrom}{$sLineSep}) AS _union_alderaan_";
}
else
{
} else {
$sOrderBy = $this->aQueries[0]->RenderOrderByClause($aOrderBy);
if (!empty($sOrderBy))
{
if (!empty($sOrderBy)) {
$sOrderBy = "ORDER BY {$sOrderBy}{$sLineSep} {$sLimit}";
$sSQL = implode(" {$sLineSep} UNION{$sLineSep} ", $aSelects).$sLineSep.$sOrderBy;
}
else
{
} else {
$sSQL = $sLimitStart.implode(" {$sLimit}{$sLimitEnd} {$sLineSep} UNION{$sLineSep} {$sLimitStart}", $aSelects)." {$sLimit}{$sLimitEnd}";
}
}
@@ -162,29 +147,26 @@ class SQLUnionQuery extends SQLQuery
* @return string
* @throws CoreException
*/
public function RenderGroupBy($aArgs = array(), $bBeautifulQuery = false, $aOrderBy = array(), $iLimitCount = 0, $iLimitStart = 0)
public function RenderGroupBy($aArgs = [], $bBeautifulQuery = false, $aOrderBy = [], $iLimitCount = 0, $iLimitStart = 0)
{
$this->m_bBeautifulQuery = $bBeautifulQuery;
$sLineSep = $this->m_bBeautifulQuery ? "\n" : '';
$aSelects = array();
foreach ($this->aQueries as $oSQLQuery)
{
$aSelects = [];
foreach ($this->aQueries as $oSQLQuery) {
// Render SELECTS without orderby/limit/count
$aSelects[] = $oSQLQuery->RenderSelect(array(), $aArgs, 0, 0, false, $bBeautifulQuery);
$aSelects[] = $oSQLQuery->RenderSelect([], $aArgs, 0, 0, false, $bBeautifulQuery);
}
$sSelects = '('.implode(")$sLineSep UNION$sLineSep(", $aSelects).')';
$sFrom = "($sLineSep$sSelects$sLineSep) as __selects__";
$aSelectAliases = array();
$aGroupAliases = array();
foreach ($this->aGroupBy as $sGroupAlias => $trash)
{
$aSelectAliases = [];
$aGroupAliases = [];
foreach ($this->aGroupBy as $sGroupAlias => $trash) {
$aSelectAliases[$sGroupAlias] = "`$sGroupAlias`";
$aGroupAliases[] = "`$sGroupAlias`";
}
foreach($this->aSelectExpr as $sSelectAlias => $oExpr)
{
foreach ($this->aSelectExpr as $sSelectAlias => $oExpr) {
$aSelectAliases[$sSelectAlias] = $oExpr->RenderExpression(true)." AS `$sSelectAlias`";
}
@@ -192,33 +174,25 @@ class SQLUnionQuery extends SQLQuery
$sGroupBy = implode(', ', $aGroupAliases);
$sOrderBy = self::ClauseOrderBy($aOrderBy, $aSelectAliases);
if (!empty($sGroupBy))
{
if (!empty($sGroupBy)) {
$sGroupBy = "GROUP BY $sGroupBy$sLineSep";
}
if (!empty($sOrderBy))
{
if (!empty($sOrderBy)) {
$sOrderBy = "ORDER BY $sOrderBy$sLineSep";
}
if ($iLimitCount > 0)
{
if ($iLimitCount > 0) {
$sLimit = 'LIMIT '.$iLimitStart.', '.$iLimitCount;
}
else
{
} else {
$sLimit = '';
}
$sSQL = "SELECT $sSelect,$sLineSep COUNT(*) AS _itop_count_$sLineSep FROM $sFrom$sLineSep $sGroupBy $sOrderBy$sLineSep $sLimit";
return $sSQL;
}
public function OptimizeJoins($aUsedTables, $bTopCall = true)
{
foreach ($this->aQueries as $oSQLQuery)
{
foreach ($this->aQueries as $oSQLQuery) {
$oSQLQuery->OptimizeJoins($aUsedTables);
}
}