From b59dfa4b41b1c67552a7f2385ab39edaf7f0197a Mon Sep 17 00:00:00 2001 From: mattamon Date: Wed, 6 Mar 2024 15:33:02 +0100 Subject: [PATCH] Add high efferent coupling and code duplication to baseline --- qodana.sarif.json | 1334 +++++++++++++++++++++++++++------------------ 1 file changed, 808 insertions(+), 526 deletions(-) diff --git a/qodana.sarif.json b/qodana.sarif.json index d42584504..873d3cdef 100644 --- a/qodana.sarif.json +++ b/qodana.sarif.json @@ -331,13 +331,13 @@ ] }, { - "id": "JavaScript and TypeScript/Data flow", - "name": "Data flow", + "id": "PHP/Php Inspections (EA Extended)/Code Style", + "name": "Code Style", "relationships": [ { "target": { - "id": "JavaScript and TypeScript", - "index": 10, + "id": "PHP/Php Inspections (EA Extended)", + "index": 1, "toolComponent": { "name": "QDPHP" } @@ -349,13 +349,13 @@ ] }, { - "id": "PHP/Php Inspections (EA Extended)/Code Style", - "name": "Code Style", + "id": "JavaScript and TypeScript/Data flow", + "name": "Data flow", "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)", - "index": 1, + "id": "JavaScript and TypeScript", + "index": 10, "toolComponent": { "name": "QDPHP" } @@ -465,13 +465,13 @@ ] }, { - "id": "PHP/Undefined symbols", - "name": "Undefined symbols", + "id": "JavaScript and TypeScript/ES2015 migration aids", + "name": "ES2015 migration aids", "relationships": [ { "target": { - "id": "PHP", - "index": 0, + "id": "JavaScript and TypeScript", + "index": 10, "toolComponent": { "name": "QDPHP" } @@ -483,13 +483,13 @@ ] }, { - "id": "JavaScript and TypeScript/ES2015 migration aids", - "name": "ES2015 migration aids", + "id": "PHP/Undefined symbols", + "name": "Undefined symbols", "relationships": [ { "target": { - "id": "JavaScript and TypeScript", - "index": 10, + "id": "PHP", + "index": 0, "toolComponent": { "name": "QDPHP" } @@ -696,10 +696,6 @@ } ] }, - { - "id": "XML", - "name": "XML" - }, { "id": "JavaScript and TypeScript/Control flow issues", "name": "Control flow issues", @@ -718,6 +714,10 @@ } ] }, + { + "id": "XML", + "name": "XML" + }, { "id": "JavaScript and TypeScript/Potentially undesirable code constructs", "name": "Potentially undesirable code constructs", @@ -965,13 +965,13 @@ ] }, { - "id": "CSS/Probable bugs", - "name": "Probable bugs", + "id": "JavaScript and TypeScript/TypeScript", + "name": "TypeScript", "relationships": [ { "target": { - "id": "CSS", - "index": 41, + "id": "JavaScript and TypeScript", + "index": 10, "toolComponent": { "name": "QDPHP" } @@ -983,13 +983,13 @@ ] }, { - "id": "JavaScript and TypeScript/TypeScript", - "name": "TypeScript", + "id": "CSS/Probable bugs", + "name": "Probable bugs", "relationships": [ { "target": { - "id": "JavaScript and TypeScript", - "index": 10, + "id": "CSS", + "index": 41, "toolComponent": { "name": "QDPHP" } @@ -1305,13 +1305,13 @@ ] }, { - "id": "JavaScript and TypeScript/Function metrics", - "name": "Function metrics", + "id": "PHP/Quality tools", + "name": "Quality tools", "relationships": [ { "target": { - "id": "JavaScript and TypeScript", - "index": 10, + "id": "PHP", + "index": 0, "toolComponent": { "name": "QDPHP" } @@ -1323,13 +1323,13 @@ ] }, { - "id": "PHP/Quality tools", - "name": "Quality tools", + "id": "JavaScript and TypeScript/Function metrics", + "name": "Function metrics", "relationships": [ { "target": { - "id": "PHP", - "index": 0, + "id": "JavaScript and TypeScript", + "index": 10, "toolComponent": { "name": "QDPHP" } @@ -1648,7 +1648,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -1681,7 +1681,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -1747,7 +1747,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -1945,7 +1945,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -2209,7 +2209,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -2242,7 +2242,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -2275,7 +2275,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -2440,7 +2440,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -2506,7 +2506,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -2572,7 +2572,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -2737,7 +2737,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -3298,7 +3298,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -3892,7 +3892,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -3958,7 +3958,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -4090,7 +4090,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -4222,7 +4222,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -4552,7 +4552,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -4717,7 +4717,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -4750,7 +4750,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -4816,7 +4816,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -4849,7 +4849,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -5014,7 +5014,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -5047,7 +5047,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -5224,19 +5224,19 @@ ] }, { - "id": "StrEndsWithCanBeUsedInspection", + "id": "UnqualifiedReferenceInspection", "shortDescription": { - "text": "'str_ends_with(...)' can be used" + "text": "Unqualified function/constant reference" }, "fullDescription": { - "text": "The inspection reports cases when 'str_ends_with(...)' can be used.", - "markdown": "The inspection reports cases when 'str_ends_with(...)' can be used." + "text": "Using fully-qualified function calls is faster, details and benchmarks are here.", + "markdown": "Using fully-qualified function calls is faster, details and benchmarks [are here](https://github.com/Roave/FunctionFQNReplacer)." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { - "suppressToolId": "StrEndsWithCanBeUsedInspection", + "suppressToolId": "UnqualifiedReferenceInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -5244,8 +5244,8 @@ "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Language level migration", - "index": 44, + "id": "PHP/Php Inspections (EA Extended)/Performance", + "index": 39, "toolComponent": { "name": "QDPHP" } @@ -5257,19 +5257,19 @@ ] }, { - "id": "UnqualifiedReferenceInspection", + "id": "StrEndsWithCanBeUsedInspection", "shortDescription": { - "text": "Unqualified function/constant reference" + "text": "'str_ends_with(...)' can be used" }, "fullDescription": { - "text": "Using fully-qualified function calls is faster, details and benchmarks are here.", - "markdown": "Using fully-qualified function calls is faster, details and benchmarks [are here](https://github.com/Roave/FunctionFQNReplacer)." + "text": "The inspection reports cases when 'str_ends_with(...)' can be used.", + "markdown": "The inspection reports cases when 'str_ends_with(...)' can be used." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "UnqualifiedReferenceInspection", + "suppressToolId": "StrEndsWithCanBeUsedInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -5277,8 +5277,8 @@ "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Performance", - "index": 39, + "id": "PHP/Php Inspections (EA Extended)/Language level migration", + "index": 44, "toolComponent": { "name": "QDPHP" } @@ -5377,7 +5377,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -5422,19 +5422,19 @@ ] }, { - "id": "ObGetCleanCanBeUsedInspection", + "id": "NullPointerExceptionInspection", "shortDescription": { - "text": "'ob_get_clean()' can be used" + "text": "Null reference" }, "fullDescription": { "text": "Documentation can be found here", - "markdown": "Documentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/control-flow.md#ob_get_clean-can-be-used)" + "markdown": "Documentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/probable-bugs.md#null-pointer-exceptions-prevention)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "ObGetCleanCanBeUsedInspection", + "suppressToolId": "NullPointerExceptionInspection", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -5442,8 +5442,8 @@ "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Control Flow", - "index": 16, + "id": "PHP/Php Inspections (EA Extended)/Probable bugs", + "index": 2, "toolComponent": { "name": "QDPHP" } @@ -5455,19 +5455,19 @@ ] }, { - "id": "NullPointerExceptionInspection", + "id": "ObGetCleanCanBeUsedInspection", "shortDescription": { - "text": "Null reference" + "text": "'ob_get_clean()' can be used" }, "fullDescription": { "text": "Documentation can be found here", - "markdown": "Documentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/probable-bugs.md#null-pointer-exceptions-prevention)" + "markdown": "Documentation can be found [here](https://github.com/kalessil/phpinspectionsea/blob/master/docs/control-flow.md#ob_get_clean-can-be-used)" }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "NullPointerExceptionInspection", + "suppressToolId": "ObGetCleanCanBeUsedInspection", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -5475,8 +5475,8 @@ "relationships": [ { "target": { - "id": "PHP/Php Inspections (EA Extended)/Probable bugs", - "index": 2, + "id": "PHP/Php Inspections (EA Extended)/Control Flow", + "index": 16, "toolComponent": { "name": "QDPHP" } @@ -5575,7 +5575,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -5872,7 +5872,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -6697,7 +6697,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -6829,7 +6829,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -7027,7 +7027,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -7192,7 +7192,7 @@ { "target": { "id": "PHP/Php Inspections (EA Extended)/Code Style", - "index": 25, + "index": 24, "toolComponent": { "name": "QDPHP" } @@ -7996,7 +7996,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -8194,7 +8194,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -8227,7 +8227,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -9328,28 +9328,28 @@ ] }, { - "id": "PhpDefineConstantNameStartsWithLeadingSlashInspection", + "id": "PhpUnitAssertCountInspection", "shortDescription": { - "text": "Constant name defined with a leading slash" + "text": "Usage 'assertCount/assertSameSize' methods instead of assertEquals" }, "fullDescription": { - "text": "Reports the 'define' constructs in which the constant's FQN starts with a leading slash. Such constants will not be correctly registered by PHP.", - "markdown": "Reports the `define` constructs in which the constant's FQN starts with a leading slash. Such constants will not be correctly registered by PHP." + "text": "Reports alternative usage of the 'assertEquals' and 'assertNotEquals' methods with 'count' function as a parameter See Usage of the assertCount for details. See Usage of the assertSameSize for details.", + "markdown": "Reports alternative usage of the `assertEquals` and `assertNotEquals` methods with `count` function as a parameter\n\n\nSee [Usage of the assertCount](https://phpunit.readthedocs.io/en/stable/assertions.html#assertcount) for details.\n\n\nSee [Usage of the assertSameSize](https://hotexamples.com/examples/-/PHPUnit_Framework_Assert/assertSameSize/php-phpunit_framework_assert-assertsamesize-method-examples.html) for details." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "PhpDefineConstantNameStartsWithLeadingSlashInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "PhpUnitAssertCountInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/PHPUnit", + "index": 27, "toolComponent": { "name": "QDPHP" } @@ -9361,28 +9361,28 @@ ] }, { - "id": "PhpUnitAssertCountInspection", + "id": "PhpDefineConstantNameStartsWithLeadingSlashInspection", "shortDescription": { - "text": "Usage 'assertCount/assertSameSize' methods instead of assertEquals" + "text": "Constant name defined with a leading slash" }, "fullDescription": { - "text": "Reports alternative usage of the 'assertEquals' and 'assertNotEquals' methods with 'count' function as a parameter See Usage of the assertCount for details. See Usage of the assertSameSize for details.", - "markdown": "Reports alternative usage of the `assertEquals` and `assertNotEquals` methods with `count` function as a parameter\n\n\nSee [Usage of the assertCount](https://phpunit.readthedocs.io/en/stable/assertions.html#assertcount) for details.\n\n\nSee [Usage of the assertSameSize](https://hotexamples.com/examples/-/PHPUnit_Framework_Assert/assertSameSize/php-phpunit_framework_assert-assertsamesize-method-examples.html) for details." + "text": "Reports the 'define' constructs in which the constant's FQN starts with a leading slash. Such constants will not be correctly registered by PHP.", + "markdown": "Reports the `define` constructs in which the constant's FQN starts with a leading slash. Such constants will not be correctly registered by PHP." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "PhpUnitAssertCountInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpDefineConstantNameStartsWithLeadingSlashInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "PHP/PHPUnit", - "index": 27, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -9558,39 +9558,6 @@ } ] }, - { - "id": "PhpUndefinedVariableInspection", - "shortDescription": { - "text": "Undefined variable" - }, - "fullDescription": { - "text": "Produces two types of warnings: Undefined variable: the variable's definition is not found in the project files, configured include paths, or among the PHP predefined variables. Variable might have not been defined: there are one or more paths to reach the line with the variable usage without defining it. Use the options below to customize the inspection: Report that variable is probably undefined: clear the checkbox to disable the Variable might have not been defined warnings. Enable inspection in global space: by default, the inspection is enabled for global space. Clear the checkbox to only report undefined variables from functions' local scope. Search for variable's definition outside the current file: if selected, the IDE reports a global variable as undefined only in case there are no 'include' or 'require' statements in the current file and the variable's definition cannot be found in the project. Note that the IDE does not examine the actual content of included files but only checks the presence of 'include' or 'require' statements. Otherwise, if not selected, the IDE searches for the variable's definition only in the current file and ignores the 'include' or 'require' statements if any.", - "markdown": "Produces two types of warnings:\n\n* *Undefined variable*: the variable's definition is not found in the project files, configured include paths, or among the PHP predefined variables.\n* *Variable might have not been defined*: there are one or more paths to reach the line with the variable usage without defining it.\n\n\nUse the options below to customize the inspection:\n\n* **Report that variable is probably undefined** : clear the checkbox to disable the *Variable might have not been defined* warnings.\n* **Enable inspection in global space**: by default, the inspection is enabled for global space. Clear the checkbox to only report undefined variables from functions' local scope.\n*\n **Search for variable's definition outside the current file** : if selected, the IDE reports a global variable as undefined only in case there are no `include` or `require` statements in the current file and the variable's definition cannot be found in the project. Note that the IDE does not examine the actual content of included files but only checks the presence of `include` or `require` statements.\n\n\n Otherwise, if not selected, the IDE searches for the variable's definition only in the current file and ignores the `include` or `require` statements if any." - }, - "defaultConfiguration": { - "enabled": true, - "level": "error", - "parameters": { - "suppressToolId": "PhpUndefinedVariableInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" - } - }, - "relationships": [ - { - "target": { - "id": "PHP/Undefined symbols", - "index": 33, - "toolComponent": { - "name": "QDPHP" - } - }, - "kinds": [ - "superset" - ] - } - ] - }, { "id": "PhpUsageOfSilenceOperatorInspection", "shortDescription": { @@ -9624,6 +9591,39 @@ } ] }, + { + "id": "PhpUndefinedVariableInspection", + "shortDescription": { + "text": "Undefined variable" + }, + "fullDescription": { + "text": "Produces two types of warnings: Undefined variable: the variable's definition is not found in the project files, configured include paths, or among the PHP predefined variables. Variable might have not been defined: there are one or more paths to reach the line with the variable usage without defining it. Use the options below to customize the inspection: Report that variable is probably undefined: clear the checkbox to disable the Variable might have not been defined warnings. Enable inspection in global space: by default, the inspection is enabled for global space. Clear the checkbox to only report undefined variables from functions' local scope. Search for variable's definition outside the current file: if selected, the IDE reports a global variable as undefined only in case there are no 'include' or 'require' statements in the current file and the variable's definition cannot be found in the project. Note that the IDE does not examine the actual content of included files but only checks the presence of 'include' or 'require' statements. Otherwise, if not selected, the IDE searches for the variable's definition only in the current file and ignores the 'include' or 'require' statements if any.", + "markdown": "Produces two types of warnings:\n\n* *Undefined variable*: the variable's definition is not found in the project files, configured include paths, or among the PHP predefined variables.\n* *Variable might have not been defined*: there are one or more paths to reach the line with the variable usage without defining it.\n\n\nUse the options below to customize the inspection:\n\n* **Report that variable is probably undefined** : clear the checkbox to disable the *Variable might have not been defined* warnings.\n* **Enable inspection in global space**: by default, the inspection is enabled for global space. Clear the checkbox to only report undefined variables from functions' local scope.\n*\n **Search for variable's definition outside the current file** : if selected, the IDE reports a global variable as undefined only in case there are no `include` or `require` statements in the current file and the variable's definition cannot be found in the project. Note that the IDE does not examine the actual content of included files but only checks the presence of `include` or `require` statements.\n\n\n Otherwise, if not selected, the IDE searches for the variable's definition only in the current file and ignores the `include` or `require` statements if any." + }, + "defaultConfiguration": { + "enabled": true, + "level": "error", + "parameters": { + "suppressToolId": "PhpUndefinedVariableInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" + } + }, + "relationships": [ + { + "target": { + "id": "PHP/Undefined symbols", + "index": 34, + "toolComponent": { + "name": "QDPHP" + } + }, + "kinds": [ + "superset" + ] + } + ] + }, { "id": "PhpShortOpenTagInspection", "shortDescription": { @@ -10384,19 +10384,19 @@ ] }, { - "id": "PhpForeachArrayIsUsedAsValueInspection", + "id": "PhpToStringMayProduceExceptionInspection", "shortDescription": { - "text": "Foreach array is used as value" + "text": "'__toString' may throw an exception" }, "fullDescription": { - "text": "Reports the variables that are used in a 'foreach' loop as both an array expression and an array's key or value (for example, 'foreach ($items as $items) {}'). Commonly, this is the result of a typing error.", - "markdown": "Reports the variables that are used in a `foreach` loop as both an array expression and an array's key or value (for example, `foreach ($items as $items) {}`).\n\n\nCommonly, this is the result of a typing error." + "text": "Reports the usages of '__toString' that may throw an exception, which is not allowed for PHP language level lower than 7.4.", + "markdown": "Reports the usages of `__toString` that may throw an exception, which is not allowed for PHP language level lower than 7.4." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "PhpForeachArrayIsUsedAsValueInspection", + "suppressToolId": "PhpToStringMayProduceExceptionInspection", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -10404,8 +10404,8 @@ "relationships": [ { "target": { - "id": "PHP/Probable bugs", - "index": 12, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -10417,19 +10417,19 @@ ] }, { - "id": "PhpToStringMayProduceExceptionInspection", + "id": "PhpForeachArrayIsUsedAsValueInspection", "shortDescription": { - "text": "'__toString' may throw an exception" + "text": "Foreach array is used as value" }, "fullDescription": { - "text": "Reports the usages of '__toString' that may throw an exception, which is not allowed for PHP language level lower than 7.4.", - "markdown": "Reports the usages of `__toString` that may throw an exception, which is not allowed for PHP language level lower than 7.4." + "text": "Reports the variables that are used in a 'foreach' loop as both an array expression and an array's key or value (for example, 'foreach ($items as $items) {}'). Commonly, this is the result of a typing error.", + "markdown": "Reports the variables that are used in a `foreach` loop as both an array expression and an array's key or value (for example, `foreach ($items as $items) {}`).\n\n\nCommonly, this is the result of a typing error." }, "defaultConfiguration": { "enabled": true, "level": "warning", "parameters": { - "suppressToolId": "PhpToStringMayProduceExceptionInspection", + "suppressToolId": "PhpForeachArrayIsUsedAsValueInspection", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -10437,8 +10437,8 @@ "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Probable bugs", + "index": 12, "toolComponent": { "name": "QDPHP" } @@ -10537,7 +10537,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -10912,19 +10912,19 @@ ] }, { - "id": "PhpAutovivificationOnFalseValuesInspection", + "id": "PhpDocSignatureIsNotCompleteInspection", "shortDescription": { - "text": "Automatic conversion of 'false' to array is deprecated" + "text": "PHPDoc comment signature is not complete" }, "fullDescription": { - "text": "Reports automatic conversions of 'false' values to arrays. Such expressions are deprecated starting from PHP 8.1. See Deprecate autovivification on false for details.", - "markdown": "Reports automatic conversions of `false` values to arrays. Such expressions are deprecated starting from PHP 8.1.\n\n\nSee [Deprecate autovivification on false](https://wiki.php.net/rfc/autovivification_false) for details." + "text": "Reports the PHPDoc comments that contain at least one '@param' or '@return' tag but are missing some of the '@param' or '@return' tags for parameters or return types specified in the function/method declaration.", + "markdown": "Reports the PHPDoc comments that contain at least one `@param` or `@return` tag but are missing some of the `@param` or `@return` tags for parameters or return types specified in the function/method declaration." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpAutovivificationOnFalseValuesInspection", + "suppressToolId": "PhpDocSignatureIsNotCompleteInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -10932,8 +10932,8 @@ "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/PHPDoc/Code style", + "index": 18, "toolComponent": { "name": "QDPHP" } @@ -10945,19 +10945,19 @@ ] }, { - "id": "PhpDocSignatureIsNotCompleteInspection", + "id": "PhpAutovivificationOnFalseValuesInspection", "shortDescription": { - "text": "PHPDoc comment signature is not complete" + "text": "Automatic conversion of 'false' to array is deprecated" }, "fullDescription": { - "text": "Reports the PHPDoc comments that contain at least one '@param' or '@return' tag but are missing some of the '@param' or '@return' tags for parameters or return types specified in the function/method declaration.", - "markdown": "Reports the PHPDoc comments that contain at least one `@param` or `@return` tag but are missing some of the `@param` or `@return` tags for parameters or return types specified in the function/method declaration." + "text": "Reports automatic conversions of 'false' values to arrays. Such expressions are deprecated starting from PHP 8.1. See Deprecate autovivification on false for details.", + "markdown": "Reports automatic conversions of `false` values to arrays. Such expressions are deprecated starting from PHP 8.1.\n\n\nSee [Deprecate autovivification on false](https://wiki.php.net/rfc/autovivification_false) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpDocSignatureIsNotCompleteInspection", + "suppressToolId": "PhpAutovivificationOnFalseValuesInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -10965,8 +10965,8 @@ "relationships": [ { "target": { - "id": "PHP/PHPDoc/Code style", - "index": 18, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -11209,28 +11209,28 @@ ] }, { - "id": "PhpDeprecatedImplodeUsageInspection", + "id": "PhpDangerousArrayInitializationInspection", "shortDescription": { - "text": "Deprecated 'implode/join' usage" + "text": "Dangerous array initialization" }, "fullDescription": { - "text": "Reports deprecated usage of the 'implode' and 'join' functions. Starting from PHP 7.4, using 'implode' and 'join' with an array as the first argument and a string as the second argument is deprecated. See Deprecations for PHP 7.4 (php.net) for details.", - "markdown": "Reports deprecated usage of the `implode` and `join` functions.\n\nStarting from PHP 7.4, using `implode` and `join` with an array as the first argument and a string as the second argument is deprecated.\n\n\nSee [Deprecations for PHP 7.4 (php.net)](https://wiki.php.net/rfc/deprecations_php_7_4#implode_parameter_order_mix) for details." + "text": "Reports dangerous array initializations (such as '$arr[] = value'). This practice is discouraged because if '$arr' already contains some value (for example, a string from a request variable), then this value will stay in place and '[]' may actually stand for string access operator. It is always preferable to initialize a variable by direct assignment. See Creating/modifying with square bracket syntax (php.net) for details.", + "markdown": "Reports dangerous array initializations (such as `$arr[] = value`).\n\n\nThis practice is discouraged because if `$arr` already contains some value (for example, a string from a request variable), then this value will stay in place and `[]` may actually stand for string access operator. It is always preferable to initialize a variable by direct assignment.\n\nSee [Creating/modifying with square bracket syntax (php.net)](https://www.php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying) for details." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "PhpDeprecatedImplodeUsageInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "PhpDangerousArrayInitializationInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/General", - "index": 8, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -11242,28 +11242,28 @@ ] }, { - "id": "PhpDangerousArrayInitializationInspection", + "id": "PhpDeprecatedImplodeUsageInspection", "shortDescription": { - "text": "Dangerous array initialization" + "text": "Deprecated 'implode/join' usage" }, "fullDescription": { - "text": "Reports dangerous array initializations (such as '$arr[] = value'). This practice is discouraged because if '$arr' already contains some value (for example, a string from a request variable), then this value will stay in place and '[]' may actually stand for string access operator. It is always preferable to initialize a variable by direct assignment. See Creating/modifying with square bracket syntax (php.net) for details.", - "markdown": "Reports dangerous array initializations (such as `$arr[] = value`).\n\n\nThis practice is discouraged because if `$arr` already contains some value (for example, a string from a request variable), then this value will stay in place and `[]` may actually stand for string access operator. It is always preferable to initialize a variable by direct assignment.\n\nSee [Creating/modifying with square bracket syntax (php.net)](https://www.php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying) for details." + "text": "Reports deprecated usage of the 'implode' and 'join' functions. Starting from PHP 7.4, using 'implode' and 'join' with an array as the first argument and a string as the second argument is deprecated. See Deprecations for PHP 7.4 (php.net) for details.", + "markdown": "Reports deprecated usage of the `implode` and `join` functions.\n\nStarting from PHP 7.4, using `implode` and `join` with an array as the first argument and a string as the second argument is deprecated.\n\n\nSee [Deprecations for PHP 7.4 (php.net)](https://wiki.php.net/rfc/deprecations_php_7_4#implode_parameter_order_mix) for details." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "PhpDangerousArrayInitializationInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpDeprecatedImplodeUsageInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/General", + "index": 8, "toolComponent": { "name": "QDPHP" } @@ -11539,28 +11539,28 @@ ] }, { - "id": "PhpClosureCanBeConvertedToShortArrowFunctionInspection", + "id": "PhpCSFixerValidationInspection", "shortDescription": { - "text": "Closure can be converted to arrow function" + "text": "PHP CS Fixer validation" }, "fullDescription": { - "text": "Reports the anonymous functions that can be transformed to short arrow functions. Support for short arrow functions is available since PHP 7.4. See PHP RFC: Arrow Functions 2.0 (php.net) for details.", - "markdown": "Reports the anonymous functions that can be transformed to short arrow functions. Support for short arrow functions is available since PHP 7.4.\n\n\nSee [PHP RFC: Arrow Functions 2.0 (php.net)](https://wiki.php.net/rfc/arrow_functions_v2) for details." + "text": "Reports coding style problems detected by PHP CS Fixer. The inspection requires PHP CS Fixer to be properly installed and set up in the IDE under Settings | PHP | Quality Tools | PHP CS Fixer. To learn more about installing PHP CS Fixer, see PHP-CS-Fixer installation (GitHub).", + "markdown": "Reports coding style problems detected by PHP CS Fixer.\n\n\nThe inspection requires PHP CS Fixer to be properly installed and set up in the IDE under\n[Settings \\| PHP \\| Quality Tools \\| PHP CS Fixer](settings://settings.php.quality.tools?CS%20Fixer).\n\n\nTo learn more about installing PHP CS Fixer, see [PHP-CS-Fixer installation (GitHub)](https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation)." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { - "suppressToolId": "PhpClosureCanBeConvertedToShortArrowFunctionInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpCSFixerValidationInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/Quality tools", + "index": 89, "toolComponent": { "name": "QDPHP" } @@ -11572,28 +11572,28 @@ ] }, { - "id": "PhpCSFixerValidationInspection", + "id": "PhpClosureCanBeConvertedToShortArrowFunctionInspection", "shortDescription": { - "text": "PHP CS Fixer validation" + "text": "Closure can be converted to arrow function" }, "fullDescription": { - "text": "Reports coding style problems detected by PHP CS Fixer. The inspection requires PHP CS Fixer to be properly installed and set up in the IDE under Settings | PHP | Quality Tools | PHP CS Fixer. To learn more about installing PHP CS Fixer, see PHP-CS-Fixer installation (GitHub).", - "markdown": "Reports coding style problems detected by PHP CS Fixer.\n\n\nThe inspection requires PHP CS Fixer to be properly installed and set up in the IDE under\n[Settings \\| PHP \\| Quality Tools \\| PHP CS Fixer](settings://settings.php.quality.tools?CS%20Fixer).\n\n\nTo learn more about installing PHP CS Fixer, see [PHP-CS-Fixer installation (GitHub)](https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation)." + "text": "Reports the anonymous functions that can be transformed to short arrow functions. Support for short arrow functions is available since PHP 7.4. See PHP RFC: Arrow Functions 2.0 (php.net) for details.", + "markdown": "Reports the anonymous functions that can be transformed to short arrow functions. Support for short arrow functions is available since PHP 7.4.\n\n\nSee [PHP RFC: Arrow Functions 2.0 (php.net)](https://wiki.php.net/rfc/arrow_functions_v2) for details." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpCSFixerValidationInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpClosureCanBeConvertedToShortArrowFunctionInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/Quality tools", - "index": 90, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -11671,28 +11671,28 @@ ] }, { - "id": "PhpUnitUndefinedDataProviderInspection", + "id": "PhpIncludeInspection", "shortDescription": { - "text": "Undefined PHPUnit data provider" + "text": "Unresolved include" }, "fullDescription": { - "text": "Reports the references to functions/methods in the '@dataProvider' PHPDoc tag that are not resolved. Note that when resolving 'dataProvider', PHPUnit doesn't take 'use' statements into account.", - "markdown": "Reports the references to functions/methods in the `@dataProvider` PHPDoc tag that are not resolved.\n\nNote that when resolving `dataProvider`, PHPUnit doesn't take `use` statements into account." + "text": "Reports non-resolved 'include', 'include_once', 'require', and 'require_once' expressions.", + "markdown": "Reports non-resolved `include`, `include_once`, `require`, and `require_once` expressions." }, "defaultConfiguration": { "enabled": true, - "level": "warning", + "level": "note", "parameters": { - "suppressToolId": "PhpUnitUndefinedDataProviderInspection", - "ideaSeverity": "WARNING", - "qodanaSeverity": "High" + "suppressToolId": "PhpIncludeInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/PHPUnit", - "index": 27, + "id": "PHP/General", + "index": 8, "toolComponent": { "name": "QDPHP" } @@ -11704,28 +11704,28 @@ ] }, { - "id": "PhpIncludeInspection", + "id": "PhpUnitUndefinedDataProviderInspection", "shortDescription": { - "text": "Unresolved include" + "text": "Undefined PHPUnit data provider" }, "fullDescription": { - "text": "Reports non-resolved 'include', 'include_once', 'require', and 'require_once' expressions.", - "markdown": "Reports non-resolved `include`, `include_once`, `require`, and `require_once` expressions." + "text": "Reports the references to functions/methods in the '@dataProvider' PHPDoc tag that are not resolved. Note that when resolving 'dataProvider', PHPUnit doesn't take 'use' statements into account.", + "markdown": "Reports the references to functions/methods in the `@dataProvider` PHPDoc tag that are not resolved.\n\nNote that when resolving `dataProvider`, PHPUnit doesn't take `use` statements into account." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "warning", "parameters": { - "suppressToolId": "PhpIncludeInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpUnitUndefinedDataProviderInspection", + "ideaSeverity": "WARNING", + "qodanaSeverity": "High" } }, "relationships": [ { "target": { - "id": "PHP/General", - "index": 8, + "id": "PHP/PHPUnit", + "index": 27, "toolComponent": { "name": "QDPHP" } @@ -12847,7 +12847,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 90, + "index": 89, "toolComponent": { "name": "QDPHP" } @@ -13507,7 +13507,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -13804,7 +13804,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -13882,19 +13882,19 @@ ] }, { - "id": "PhpStrFunctionsInspection", + "id": "PhpDocRedundantThrowsInspection", "shortDescription": { - "text": "'str*()' calls can be replaced with PHP 8 'str_*()' calls" + "text": "Redundant @throws tag(s)" }, "fullDescription": { - "text": "Reports the 'strpos' and 'substr' functions calls that can be replaced with the 'str_*' functions calls (introduced in PHP 8.0). See str_contains (php.net) and str_starts_with and str_ends_with functions (php.net) for details.", - "markdown": "Reports the `strpos` and `substr` functions calls that can be replaced with the `str_*` functions calls (introduced in PHP 8.0).\n\n\nSee [str_contains (php.net)](https://wiki.php.net/rfc/str_contains) and [str_starts_with and str_ends_with functions (php.net)](https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions) for details." + "text": "Reports '@throws' tags for exceptions that are not thrown by the function or method. The exception classes added to the Unchecked Exceptions list under Settings | PHP | Analysis are excluded from the inspection scope.", + "markdown": "Reports `@throws` tags for exceptions that are not thrown by the function or method.\n\nThe exception classes added to the **Unchecked Exceptions** list under\n[Settings \\| PHP \\| Analysis](settings://reference.webide.settings.project.settings.php?Unchecked%20Exceptions)\nare excluded from the inspection scope." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpStrFunctionsInspection", + "suppressToolId": "PhpDocRedundantThrowsInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -13902,8 +13902,8 @@ "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/PHPDoc", + "index": 4, "toolComponent": { "name": "QDPHP" } @@ -13915,19 +13915,19 @@ ] }, { - "id": "PhpDocRedundantThrowsInspection", + "id": "PhpStrFunctionsInspection", "shortDescription": { - "text": "Redundant @throws tag(s)" + "text": "'str*()' calls can be replaced with PHP 8 'str_*()' calls" }, "fullDescription": { - "text": "Reports '@throws' tags for exceptions that are not thrown by the function or method. The exception classes added to the Unchecked Exceptions list under Settings | PHP | Analysis are excluded from the inspection scope.", - "markdown": "Reports `@throws` tags for exceptions that are not thrown by the function or method.\n\nThe exception classes added to the **Unchecked Exceptions** list under\n[Settings \\| PHP \\| Analysis](settings://reference.webide.settings.project.settings.php?Unchecked%20Exceptions)\nare excluded from the inspection scope." + "text": "Reports the 'strpos' and 'substr' functions calls that can be replaced with the 'str_*' functions calls (introduced in PHP 8.0). See str_contains (php.net) and str_starts_with and str_ends_with functions (php.net) for details.", + "markdown": "Reports the `strpos` and `substr` functions calls that can be replaced with the `str_*` functions calls (introduced in PHP 8.0).\n\n\nSee [str_contains (php.net)](https://wiki.php.net/rfc/str_contains) and [str_starts_with and str_ends_with functions (php.net)](https://wiki.php.net/rfc/add_str_starts_with_and_ends_with_functions) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpDocRedundantThrowsInspection", + "suppressToolId": "PhpStrFunctionsInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -13935,8 +13935,8 @@ "relationships": [ { "target": { - "id": "PHP/PHPDoc", - "index": 4, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -14035,7 +14035,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 90, + "index": 89, "toolComponent": { "name": "QDPHP" } @@ -14410,19 +14410,19 @@ ] }, { - "id": "PhpFuncGetArgCanBeReplacedWithParamInspection", + "id": "PhpBooleanCanBeSimplifiedInspection", "shortDescription": { - "text": "'func_get_arg()' call can be replaced with parameter access" + "text": "Boolean expression can be simplified" }, "fullDescription": { - "text": "Reports the 'func_get_arg()' calls that can be replaced with direct parameter access.", - "markdown": "Reports the `func_get_arg()` calls that can be replaced with direct parameter access." + "text": "Reports the boolean expressions that contain the 'true' or 'false' literals and can be simplified.", + "markdown": "Reports the boolean expressions that contain the `true` or `false` literals and can be simplified." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpFuncGetArgCanBeReplacedWithParamInspection", + "suppressToolId": "PhpBooleanCanBeSimplifiedInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -14443,19 +14443,19 @@ ] }, { - "id": "PhpBooleanCanBeSimplifiedInspection", + "id": "PhpFuncGetArgCanBeReplacedWithParamInspection", "shortDescription": { - "text": "Boolean expression can be simplified" + "text": "'func_get_arg()' call can be replaced with parameter access" }, "fullDescription": { - "text": "Reports the boolean expressions that contain the 'true' or 'false' literals and can be simplified.", - "markdown": "Reports the boolean expressions that contain the `true` or `false` literals and can be simplified." + "text": "Reports the 'func_get_arg()' calls that can be replaced with direct parameter access.", + "markdown": "Reports the `func_get_arg()` calls that can be replaced with direct parameter access." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpBooleanCanBeSimplifiedInspection", + "suppressToolId": "PhpFuncGetArgCanBeReplacedWithParamInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -14992,7 +14992,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -15070,28 +15070,28 @@ ] }, { - "id": "PhpPregMatchRedundantClosureInspection", + "id": "PhpStatementWithoutBracesInspection", "shortDescription": { - "text": "Redundant closure '.*'" + "text": "Control statement body without braces" }, "fullDescription": { - "text": "Reports redundant leading and trailing '.*' in pattern for `preg_match` function.", - "markdown": "Reports redundant leading and trailing '.\\*' in pattern for \\`preg_match\\` function." + "text": "Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces. See Control structures (php.net) for details.", + "markdown": "Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces.\n\n\nSee [Control structures (php.net)](https://www.php.net/manual/en/language.control-structures.php) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpPregMatchRedundantClosureInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpStatementWithoutBracesInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -15103,28 +15103,28 @@ ] }, { - "id": "PhpStatementWithoutBracesInspection", + "id": "PhpPregMatchRedundantClosureInspection", "shortDescription": { - "text": "Control statement body without braces" + "text": "Redundant closure '.*'" }, "fullDescription": { - "text": "Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces. See Control structures (php.net) for details.", - "markdown": "Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces.\n\n\nSee [Control structures (php.net)](https://www.php.net/manual/en/language.control-structures.php) for details." + "text": "Reports redundant leading and trailing '.*' in pattern for `preg_match` function.", + "markdown": "Reports redundant leading and trailing '.\\*' in pattern for \\`preg_match\\` function." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpStatementWithoutBracesInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpPregMatchRedundantClosureInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -15334,19 +15334,19 @@ ] }, { - "id": "PhpUnused", + "id": "PhpUnitMisorderedAssertEqualsArgumentsInspection", "shortDescription": { - "text": "Unused declaration" + "text": "Misordered PHPUnit equality assertion method arguments" }, "fullDescription": { - "text": "Reports the classes, methods, functions, constants, or properties that are not used or not reachable from entry points. It also reports all method implementations/overriders. Some unused members might not be reported in the code editor on the fly. Due to performance reasons, a non-private member is checked only when its name rarely occurs in the project. To see all results, run the inspection in batch mode by using Code | Inspect Code... or Code | Run Inspection by Name....", - "markdown": "Reports the classes, methods, functions, constants, or properties that are not used or not reachable from entry points. It also reports all method implementations/overriders.\n\nSome unused members might not be reported in the code editor on the fly. Due to performance reasons, a non-private member is checked only\nwhen its name rarely occurs in the project.\n\nTo see all results, run the inspection in batch mode by using **Code \\| Inspect Code...** or **Code \\| Run Inspection by\nName...**." + "text": "Reports the calls to PHPUnit equality assertion methods (such as 'assertEquals()', 'assertNotEquals()', 'assertSame()', and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. Such calls will behave fine for assertions that pass, but may produce confusing error reports if their expected and actual arguments differ. See assertEquals for details.", + "markdown": "Reports the calls to PHPUnit equality assertion methods (such as `assertEquals()`, `assertNotEquals()`, `assertSame()`, and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. Such calls will behave fine for assertions that pass, but may produce confusing error reports if their expected and actual arguments differ.\n\n\nSee [assertEquals](https://phpunit.readthedocs.io/en/stable/assertions.html#assertequals) for details." }, "defaultConfiguration": { - "enabled": false, + "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpUnused", + "suppressToolId": "PhpUnitMisorderedAssertEqualsArgumentsInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -15354,8 +15354,8 @@ "relationships": [ { "target": { - "id": "PHP/Unused symbols", - "index": 47, + "id": "PHP/PHPUnit", + "index": 27, "toolComponent": { "name": "QDPHP" } @@ -15367,19 +15367,19 @@ ] }, { - "id": "PhpUnitMisorderedAssertEqualsArgumentsInspection", + "id": "PhpUnused", "shortDescription": { - "text": "Misordered PHPUnit equality assertion method arguments" + "text": "Unused declaration" }, "fullDescription": { - "text": "Reports the calls to PHPUnit equality assertion methods (such as 'assertEquals()', 'assertNotEquals()', 'assertSame()', and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. Such calls will behave fine for assertions that pass, but may produce confusing error reports if their expected and actual arguments differ. See assertEquals for details.", - "markdown": "Reports the calls to PHPUnit equality assertion methods (such as `assertEquals()`, `assertNotEquals()`, `assertSame()`, and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. Such calls will behave fine for assertions that pass, but may produce confusing error reports if their expected and actual arguments differ.\n\n\nSee [assertEquals](https://phpunit.readthedocs.io/en/stable/assertions.html#assertequals) for details." + "text": "Reports the classes, methods, functions, constants, or properties that are not used or not reachable from entry points. It also reports all method implementations/overriders. Some unused members might not be reported in the code editor on the fly. Due to performance reasons, a non-private member is checked only when its name rarely occurs in the project. To see all results, run the inspection in batch mode by using Code | Inspect Code... or Code | Run Inspection by Name....", + "markdown": "Reports the classes, methods, functions, constants, or properties that are not used or not reachable from entry points. It also reports all method implementations/overriders.\n\nSome unused members might not be reported in the code editor on the fly. Due to performance reasons, a non-private member is checked only\nwhen its name rarely occurs in the project.\n\nTo see all results, run the inspection in batch mode by using **Code \\| Inspect Code...** or **Code \\| Run Inspection by\nName...**." }, "defaultConfiguration": { - "enabled": true, + "enabled": false, "level": "note", "parameters": { - "suppressToolId": "PhpUnitMisorderedAssertEqualsArgumentsInspection", + "suppressToolId": "PhpUnused", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -15387,8 +15387,8 @@ "relationships": [ { "target": { - "id": "PHP/PHPUnit", - "index": 27, + "id": "PHP/Unused symbols", + "index": 47, "toolComponent": { "name": "QDPHP" } @@ -15994,28 +15994,28 @@ ] }, { - "id": "PhpContinueTargetingSwitchInspection", + "id": "PhpGetClassCanBeReplacedWithClassNameLiteralInspection", "shortDescription": { - "text": "'continue' is targeting 'switch' statement" + "text": "'get_class()' call can be replaced with '::class'" }, "fullDescription": { - "text": "Reports the 'continue' statements that are targeting 'switch' statements. In PHP 7.3 and later, such usages are deprecated and will emit an 'E_WARNING', since they are most likely the result of a programming mistake. In PHP, such 'continue' statements are equivalent to 'break', that is, they end the execution of the current 'switch' structure. In other languages, such 'continue' statements behave as 'continue 2' in PHP, that is, they take the execution to a higher level control structure (for example, the next iteration of an outer loop). See continue (php.net), break (php.net), and switch (php.net) for details.", - "markdown": "Reports the `continue` statements that are targeting `switch` statements. In PHP 7.3 and later, such usages are deprecated and will emit an `E_WARNING`, since they are most likely the result of a programming mistake.\n\n* In PHP, such `continue` statements are equivalent to `break`, that is, they end the execution of the current `switch` structure.\n* In other languages, such `continue` statements behave as `continue 2` in PHP, that is, they take the execution to a higher level control structure (for example, the next iteration of an outer loop).\n\n\nSee [continue (php.net)](https://www.php.net/manual/en/control-structures.continue.php), [break (php.net)](https://www.php.net/manual/en/control-structures.break.php), and [switch (php.net)](https://www.php.net/manual/en/control-structures.switch.php) for details." + "text": "Reports the 'get_class()' calls and suggests replacing them with '::class' when PHP Language level is set to 8.0 or later. See Allow ::class on objects (php.net) for details.", + "markdown": "Reports the `get_class()` calls and suggests replacing them with `::class` when PHP Language level is set to 8.0 or later.\n\n\nSee [Allow ::class on objects (php.net)](https://wiki.php.net/rfc/class_name_literal_on_object) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpContinueTargetingSwitchInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpGetClassCanBeReplacedWithClassNameLiteralInspection", + "ideaSeverity": "INFORMATION", + "qodanaSeverity": "Info" } }, "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -16027,28 +16027,28 @@ ] }, { - "id": "PhpGetClassCanBeReplacedWithClassNameLiteralInspection", + "id": "PhpContinueTargetingSwitchInspection", "shortDescription": { - "text": "'get_class()' call can be replaced with '::class'" + "text": "'continue' is targeting 'switch' statement" }, "fullDescription": { - "text": "Reports the 'get_class()' calls and suggests replacing them with '::class' when PHP Language level is set to 8.0 or later. See Allow ::class on objects (php.net) for details.", - "markdown": "Reports the `get_class()` calls and suggests replacing them with `::class` when PHP Language level is set to 8.0 or later.\n\n\nSee [Allow ::class on objects (php.net)](https://wiki.php.net/rfc/class_name_literal_on_object) for details." + "text": "Reports the 'continue' statements that are targeting 'switch' statements. In PHP 7.3 and later, such usages are deprecated and will emit an 'E_WARNING', since they are most likely the result of a programming mistake. In PHP, such 'continue' statements are equivalent to 'break', that is, they end the execution of the current 'switch' structure. In other languages, such 'continue' statements behave as 'continue 2' in PHP, that is, they take the execution to a higher level control structure (for example, the next iteration of an outer loop). See continue (php.net), break (php.net), and switch (php.net) for details.", + "markdown": "Reports the `continue` statements that are targeting `switch` statements. In PHP 7.3 and later, such usages are deprecated and will emit an `E_WARNING`, since they are most likely the result of a programming mistake.\n\n* In PHP, such `continue` statements are equivalent to `break`, that is, they end the execution of the current `switch` structure.\n* In other languages, such `continue` statements behave as `continue 2` in PHP, that is, they take the execution to a higher level control structure (for example, the next iteration of an outer loop).\n\n\nSee [continue (php.net)](https://www.php.net/manual/en/control-structures.continue.php), [break (php.net)](https://www.php.net/manual/en/control-structures.break.php), and [switch (php.net)](https://www.php.net/manual/en/control-structures.switch.php) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpGetClassCanBeReplacedWithClassNameLiteralInspection", - "ideaSeverity": "INFORMATION", - "qodanaSeverity": "Info" + "suppressToolId": "PhpContinueTargetingSwitchInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -16213,7 +16213,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -16246,7 +16246,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -16324,28 +16324,28 @@ ] }, { - "id": "PhpMissingStrictTypesDeclarationInspection", + "id": "PhpConvertToJsonValidateInspection", "shortDescription": { - "text": "Missing strict types declaration" + "text": "'json_decode()' and 'json_last_error()' can be converted to 'json_validate()'" }, "fullDescription": { - "text": "Detects the missing 'declare(strict_types=1)' directive in the file. See Strict typing (php.net) to learn more about why you may need use this directive.", - "markdown": "Detects the missing `declare(strict_types=1)` directive in the file.\n\n\nSee [Strict typing (php.net)](https://www.php.net/manual/en/language.types.declarations.php#language.types.declarations.strict) to learn more about why you may need use this directive." + "text": "Convert `json_decode()` and `json_last_error() === JSON_ERROR_NONE` to `json_validate()` See PHP RFC: json_validate for details.", + "markdown": "Convert \\`json_decode()\\` and \\`json_last_error() === JSON_ERROR_NONE\\` to \\`json_validate()\\`\n\n\nSee [PHP RFC: json_validate](https://wiki.php.net/rfc/json_validate) for details." }, "defaultConfiguration": { "enabled": true, - "level": "error", + "level": "note", "parameters": { - "suppressToolId": "PhpMissingStrictTypesDeclarationInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "PhpConvertToJsonValidateInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Type compatibility", - "index": 31, + "id": "PHP/Code style", + "index": 5, "toolComponent": { "name": "QDPHP" } @@ -16357,28 +16357,28 @@ ] }, { - "id": "PhpConvertToJsonValidateInspection", + "id": "PhpMissingStrictTypesDeclarationInspection", "shortDescription": { - "text": "'json_decode()' and 'json_last_error()' can be converted to 'json_validate()'" + "text": "Missing strict types declaration" }, "fullDescription": { - "text": "Convert `json_decode()` and `json_last_error() === JSON_ERROR_NONE` to `json_validate()` See PHP RFC: json_validate for details.", - "markdown": "Convert \\`json_decode()\\` and \\`json_last_error() === JSON_ERROR_NONE\\` to \\`json_validate()\\`\n\n\nSee [PHP RFC: json_validate](https://wiki.php.net/rfc/json_validate) for details." + "text": "Detects the missing 'declare(strict_types=1)' directive in the file. See Strict typing (php.net) to learn more about why you may need use this directive.", + "markdown": "Detects the missing `declare(strict_types=1)` directive in the file.\n\n\nSee [Strict typing (php.net)](https://www.php.net/manual/en/language.types.declarations.php#language.types.declarations.strict) to learn more about why you may need use this directive." }, "defaultConfiguration": { "enabled": true, - "level": "note", + "level": "error", "parameters": { - "suppressToolId": "PhpConvertToJsonValidateInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpMissingStrictTypesDeclarationInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "PHP/Code style", - "index": 5, + "id": "PHP/Type compatibility", + "index": 31, "toolComponent": { "name": "QDPHP" } @@ -17005,7 +17005,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -17203,7 +17203,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -17314,19 +17314,19 @@ ] }, { - "id": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "id": "PhpRegExpRedundantModifierInspection", "shortDescription": { - "text": "Attribute can be added to overriding member " + "text": "Redundant modifier" }, "fullDescription": { - "text": "Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters. See Attributes (php.net) for details.", - "markdown": "Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters.\n\n\nSee [Attributes (php.net)](https://wiki.php.net/rfc/attributes_v2) for details." + "text": "Reports the 'i' (case insensitivity) modifiers that are used in regular expression patterns containing no letters. Such modifiers are redundant and can be safely removed.", + "markdown": "Reports the `i` (case insensitivity) modifiers that are used in regular expression patterns containing no letters. Such modifiers are redundant and can be safely removed." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", + "suppressToolId": "PhpRegExpRedundantModifierInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -17334,8 +17334,8 @@ "relationships": [ { "target": { - "id": "PHP/Attributes", - "index": 57, + "id": "PHP/Regular expressions", + "index": 88, "toolComponent": { "name": "QDPHP" } @@ -17347,19 +17347,19 @@ ] }, { - "id": "PhpRegExpRedundantModifierInspection", + "id": "PhpAttributeCanBeAddedToOverriddenMemberInspection", "shortDescription": { - "text": "Redundant modifier" + "text": "Attribute can be added to overriding member " }, "fullDescription": { - "text": "Reports the 'i' (case insensitivity) modifiers that are used in regular expression patterns containing no letters. Such modifiers are redundant and can be safely removed.", - "markdown": "Reports the `i` (case insensitivity) modifiers that are used in regular expression patterns containing no letters. Such modifiers are redundant and can be safely removed." + "text": "Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters. See Attributes (php.net) for details.", + "markdown": "Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters.\n\n\nSee [Attributes (php.net)](https://wiki.php.net/rfc/attributes_v2) for details." }, "defaultConfiguration": { "enabled": true, "level": "note", "parameters": { - "suppressToolId": "PhpRegExpRedundantModifierInspection", + "suppressToolId": "PhpAttributeCanBeAddedToOverriddenMemberInspection", "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate" } @@ -17367,8 +17367,8 @@ "relationships": [ { "target": { - "id": "PHP/Regular expressions", - "index": 88, + "id": "PHP/Attributes", + "index": 57, "toolComponent": { "name": "QDPHP" } @@ -18556,7 +18556,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 90, + "index": 89, "toolComponent": { "name": "QDPHP" } @@ -18622,7 +18622,7 @@ { "target": { "id": "PHP/Undefined symbols", - "index": 33, + "index": 34, "toolComponent": { "name": "QDPHP" } @@ -18667,28 +18667,28 @@ ] }, { - "id": "PhpTooManyParametersInspection", + "id": "PhpInvalidStringOffsetUsageInspection", "shortDescription": { - "text": "Too many parameters in function declaration" + "text": "Invalid string offset usage" }, "fullDescription": { - "text": "Reports the function/method declarations with the number of parameters exceeding the specified limit.", - "markdown": "Reports the function/method declarations with the number of parameters exceeding the specified limit." + "text": "Reports invalid string offset usages that will result in a runtime error. The following usages are reported: Using string offsets as objects or arrays Unsetting string offsets via 'unset' Passing string offsets by reference Creating references to or from string offsets Incrementing or decrementing string offsets Using combined operator assignments such as '+=' or '.=' on string offsets Assigning string offsets with empty strings or strings with length >1", + "markdown": "Reports invalid string offset usages that will result in a runtime error.\n\n\nThe following usages are reported:\n\n* Using string offsets as objects or arrays\n* Unsetting string offsets via `unset`\n* Passing string offsets by reference\n* Creating references to or from string offsets\n* Incrementing or decrementing string offsets\n* Using combined operator assignments such as `+=` or `.=` on string offsets\n* Assigning string offsets with empty strings or strings with length \\>1" }, "defaultConfiguration": { - "enabled": false, - "level": "note", + "enabled": true, + "level": "error", "parameters": { - "suppressToolId": "PhpTooManyParametersInspection", - "ideaSeverity": "WEAK WARNING", - "qodanaSeverity": "Moderate" + "suppressToolId": "PhpInvalidStringOffsetUsageInspection", + "ideaSeverity": "ERROR", + "qodanaSeverity": "Critical" } }, "relationships": [ { "target": { - "id": "PHP/Code smell", - "index": 3, + "id": "PHP/Probable bugs", + "index": 12, "toolComponent": { "name": "QDPHP" } @@ -18733,28 +18733,28 @@ ] }, { - "id": "PhpInvalidStringOffsetUsageInspection", + "id": "PhpTooManyParametersInspection", "shortDescription": { - "text": "Invalid string offset usage" + "text": "Too many parameters in function declaration" }, "fullDescription": { - "text": "Reports invalid string offset usages that will result in a runtime error. The following usages are reported: Using string offsets as objects or arrays Unsetting string offsets via 'unset' Passing string offsets by reference Creating references to or from string offsets Incrementing or decrementing string offsets Using combined operator assignments such as '+=' or '.=' on string offsets Assigning string offsets with empty strings or strings with length >1", - "markdown": "Reports invalid string offset usages that will result in a runtime error.\n\n\nThe following usages are reported:\n\n* Using string offsets as objects or arrays\n* Unsetting string offsets via `unset`\n* Passing string offsets by reference\n* Creating references to or from string offsets\n* Incrementing or decrementing string offsets\n* Using combined operator assignments such as `+=` or `.=` on string offsets\n* Assigning string offsets with empty strings or strings with length \\>1" + "text": "Reports the function/method declarations with the number of parameters exceeding the specified limit.", + "markdown": "Reports the function/method declarations with the number of parameters exceeding the specified limit." }, "defaultConfiguration": { - "enabled": true, - "level": "error", + "enabled": false, + "level": "note", "parameters": { - "suppressToolId": "PhpInvalidStringOffsetUsageInspection", - "ideaSeverity": "ERROR", - "qodanaSeverity": "Critical" + "suppressToolId": "PhpTooManyParametersInspection", + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate" } }, "relationships": [ { "target": { - "id": "PHP/Probable bugs", - "index": 12, + "id": "PHP/Code smell", + "index": 3, "toolComponent": { "name": "QDPHP" } @@ -23668,7 +23668,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -23932,7 +23932,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -24031,7 +24031,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -24064,7 +24064,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -24130,7 +24130,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -24196,7 +24196,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -24328,7 +24328,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -24493,7 +24493,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -24592,7 +24592,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -24988,7 +24988,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -25120,7 +25120,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -25285,7 +25285,7 @@ { "target": { "id": "XML", - "index": 49, + "index": 50, "toolComponent": { "name": "QDPHP" } @@ -25837,7 +25837,7 @@ { "target": { "id": "JavaScript and TypeScript/Data flow", - "index": 24, + "index": 25, "toolComponent": { "name": "QDPHP" } @@ -25936,7 +25936,7 @@ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 34, + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -26101,7 +26101,7 @@ { "target": { "id": "JavaScript and TypeScript/Data flow", - "index": 24, + "index": 25, "toolComponent": { "name": "QDPHP" } @@ -26200,7 +26200,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -26431,7 +26431,7 @@ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 34, + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -26464,7 +26464,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -26629,7 +26629,7 @@ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 34, + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -26992,7 +26992,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -27190,7 +27190,7 @@ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 34, + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -27301,19 +27301,19 @@ ] }, { - "id": "EmptyTryBlockJS", + "id": "ES6ClassMemberInitializationOrder", "shortDescription": { - "text": "Empty 'try' block" + "text": "Use of possibly unassigned property in a static initializer" }, "fullDescription": { - "text": "Reports an empty 'try' block, which usually indicates an error.", - "markdown": "Reports an empty `try` block, which usually indicates an error." + "text": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. Initialization of class members happens consequently for fields, so a field cannot reference another field that is declared later.", + "markdown": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. \n\nInitialization of class members happens consequently for fields, so a field cannot reference another field that is declared later." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "EmptyTryBlockJS", + "suppressToolId": "ES6ClassMemberInitializationOrder", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -27321,8 +27321,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Try statement issues", - "index": 45, + "id": "JavaScript and TypeScript/General", + "index": 32, "toolComponent": { "name": "QDPHP" } @@ -27334,19 +27334,19 @@ ] }, { - "id": "ES6ClassMemberInitializationOrder", + "id": "EmptyTryBlockJS", "shortDescription": { - "text": "Use of possibly unassigned property in a static initializer" + "text": "Empty 'try' block" }, "fullDescription": { - "text": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. Initialization of class members happens consequently for fields, so a field cannot reference another field that is declared later.", - "markdown": "Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. \n\nInitialization of class members happens consequently for fields, so a field cannot reference another field that is declared later." + "text": "Reports an empty 'try' block, which usually indicates an error.", + "markdown": "Reports an empty `try` block, which usually indicates an error." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "ES6ClassMemberInitializationOrder", + "suppressToolId": "EmptyTryBlockJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -27354,8 +27354,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 32, + "id": "JavaScript and TypeScript/Try statement issues", + "index": 45, "toolComponent": { "name": "QDPHP" } @@ -27487,7 +27487,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -27553,7 +27553,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -27619,7 +27619,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -27652,7 +27652,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -27685,7 +27685,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -27784,7 +27784,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -28048,7 +28048,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -28114,7 +28114,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -28147,7 +28147,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 89, + "index": 90, "toolComponent": { "name": "QDPHP" } @@ -28213,7 +28213,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 89, + "index": 90, "toolComponent": { "name": "QDPHP" } @@ -28378,7 +28378,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -28411,7 +28411,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -28543,7 +28543,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -28654,19 +28654,19 @@ ] }, { - "id": "IfStatementWithIdenticalBranchesJS", + "id": "PlatformDetectionJS", "shortDescription": { - "text": "'if' statement with identical branches" + "text": "Inaccurate platform detection" }, "fullDescription": { - "text": "Reports an 'if' statement with identical 'then' and 'else' branches. Such statements are almost certainly an error.", - "markdown": "Reports an `if` statement with identical `then` and `else` branches. Such statements are almost certainly an error." + "text": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform. Patterns detected include: 'document.all' 'document.layers' 'navigator.userAgent' 'navigator.oscpu' 'navigator.appName' 'navigator.appCodeName' 'navigator.platform'", + "markdown": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform.\n\nPatterns detected include:\n\n* `document.all`\n* `document.layers`\n* `navigator.userAgent`\n* `navigator.oscpu`\n* `navigator.appName`\n* `navigator.appCodeName`\n* `navigator.platform`" }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "IfStatementWithIdenticalBranchesJS", + "suppressToolId": "PlatformDetectionJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -28674,8 +28674,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "id": "JavaScript and TypeScript/DOM issues", + "index": 72, "toolComponent": { "name": "QDPHP" } @@ -28687,19 +28687,19 @@ ] }, { - "id": "PlatformDetectionJS", + "id": "IfStatementWithIdenticalBranchesJS", "shortDescription": { - "text": "Inaccurate platform detection" + "text": "'if' statement with identical branches" }, "fullDescription": { - "text": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform. Patterns detected include: 'document.all' 'document.layers' 'navigator.userAgent' 'navigator.oscpu' 'navigator.appName' 'navigator.appCodeName' 'navigator.platform'", - "markdown": "Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. In addition to pointing out non-portable constructs, these platform detection patterns are often incomplete and easily fooled. For most cases, detection of individual environment features is preferable to attempting to detect the entire platform.\n\nPatterns detected include:\n\n* `document.all`\n* `document.layers`\n* `navigator.userAgent`\n* `navigator.oscpu`\n* `navigator.appName`\n* `navigator.appCodeName`\n* `navigator.platform`" + "text": "Reports an 'if' statement with identical 'then' and 'else' branches. Such statements are almost certainly an error.", + "markdown": "Reports an `if` statement with identical `then` and `else` branches. Such statements are almost certainly an error." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "PlatformDetectionJS", + "suppressToolId": "IfStatementWithIdenticalBranchesJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -28707,8 +28707,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 72, + "id": "JavaScript and TypeScript/Control flow issues", + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -28807,7 +28807,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -28840,7 +28840,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -28852,19 +28852,19 @@ ] }, { - "id": "InnerHTMLJS", + "id": "ES6UnusedImports", "shortDescription": { - "text": "Use of 'innerHTML' property" + "text": "Unused import" }, "fullDescription": { - "text": "Reports a JavaScript access to DOM nodes as text using the 'innerHTML' property. Most usages of 'innerHTML' are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, 'innerHTML' will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs.", - "markdown": "Reports a JavaScript access to DOM nodes as text using the `innerHTML` property. Most usages of `innerHTML` are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, `innerHTML` will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs." + "text": "Reports a redundant 'import' statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import 'import 'packageName'' instead of the regular one.", + "markdown": "Reports a redundant `import` statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import `import 'packageName'` instead of the regular one." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "InnerHTMLJS", + "suppressToolId": "ES6UnusedImports", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -28872,8 +28872,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/DOM issues", - "index": 72, + "id": "JavaScript and TypeScript/Imports and dependencies", + "index": 77, "toolComponent": { "name": "QDPHP" } @@ -28885,19 +28885,19 @@ ] }, { - "id": "ES6UnusedImports", + "id": "InnerHTMLJS", "shortDescription": { - "text": "Unused import" + "text": "Use of 'innerHTML' property" }, "fullDescription": { - "text": "Reports a redundant 'import' statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import 'import 'packageName'' instead of the regular one.", - "markdown": "Reports a redundant `import` statement. This is usually the case if the imported symbols are not used in the source file. To avoid side-effects, consider using bare import `import 'packageName'` instead of the regular one." + "text": "Reports a JavaScript access to DOM nodes as text using the 'innerHTML' property. Most usages of 'innerHTML' are performed better with explicit DOM calls, such as 'getElementByID()' and 'createElement()'. Additionally, 'innerHTML' will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs.", + "markdown": "Reports a JavaScript access to DOM nodes as text using the `innerHTML` property. Most usages of `innerHTML` are performed better with explicit DOM calls, such as `getElementByID()` and `createElement()`. Additionally, `innerHTML` will not work with XML DOMs, including DOMs for XHTML if viewed as XML. This can lead to difficulties in diagnosing bugs." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "ES6UnusedImports", + "suppressToolId": "InnerHTMLJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -28905,8 +28905,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Imports and dependencies", - "index": 77, + "id": "JavaScript and TypeScript/DOM issues", + "index": 72, "toolComponent": { "name": "QDPHP" } @@ -29005,7 +29005,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -29137,7 +29137,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -29203,7 +29203,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -29215,19 +29215,19 @@ ] }, { - "id": "JSValidateJSDoc", + "id": "NonBlockStatementBodyJS", "shortDescription": { - "text": "Syntax errors and unresolved references in JSDoc" + "text": "Statement body without braces" }, "fullDescription": { - "text": "Reports a syntax discrepancy in a documentation comment.", - "markdown": "Reports a syntax discrepancy in a documentation comment." + "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", + "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "JSValidateJSDoc", + "suppressToolId": "NonBlockStatementBodyJS", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29235,8 +29235,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/General", - "index": 32, + "id": "JavaScript and TypeScript/Code style issues", + "index": 62, "toolComponent": { "name": "QDPHP" } @@ -29248,19 +29248,19 @@ ] }, { - "id": "NonBlockStatementBodyJS", + "id": "JSValidateJSDoc", "shortDescription": { - "text": "Statement body without braces" + "text": "Syntax errors and unresolved references in JSDoc" }, "fullDescription": { - "text": "Reports a 'if', 'while', 'for', or 'with' statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance.", - "markdown": "Reports a `if`, `while`, `for`, or `with` statements whose body is not a block statement. Using code block in statement bodies is usually safer for downstream maintenance." + "text": "Reports a syntax discrepancy in a documentation comment.", + "markdown": "Reports a syntax discrepancy in a documentation comment." }, "defaultConfiguration": { "enabled": false, "level": "warning", "parameters": { - "suppressToolId": "NonBlockStatementBodyJS", + "suppressToolId": "JSValidateJSDoc", "ideaSeverity": "WARNING", "qodanaSeverity": "High" } @@ -29268,8 +29268,8 @@ "relationships": [ { "target": { - "id": "JavaScript and TypeScript/Code style issues", - "index": 62, + "id": "JavaScript and TypeScript/General", + "index": 32, "toolComponent": { "name": "QDPHP" } @@ -29434,7 +29434,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -29467,7 +29467,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -29533,7 +29533,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 89, + "index": 90, "toolComponent": { "name": "QDPHP" } @@ -29632,7 +29632,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -29665,7 +29665,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -29896,7 +29896,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -29929,7 +29929,7 @@ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 34, + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -30028,7 +30028,7 @@ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 34, + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -30061,7 +30061,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -30193,7 +30193,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -30292,7 +30292,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 89, + "index": 90, "toolComponent": { "name": "QDPHP" } @@ -30556,7 +30556,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -30589,7 +30589,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -30820,7 +30820,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -30919,7 +30919,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 89, + "index": 90, "toolComponent": { "name": "QDPHP" } @@ -31183,7 +31183,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -31249,7 +31249,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -31282,7 +31282,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -31348,7 +31348,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -31480,7 +31480,7 @@ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 34, + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -31546,7 +31546,7 @@ { "target": { "id": "JavaScript and TypeScript/ES2015 migration aids", - "index": 34, + "index": 33, "toolComponent": { "name": "QDPHP" } @@ -31645,7 +31645,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 89, + "index": 90, "toolComponent": { "name": "QDPHP" } @@ -31909,7 +31909,7 @@ { "target": { "id": "JavaScript and TypeScript/Function metrics", - "index": 89, + "index": 90, "toolComponent": { "name": "QDPHP" } @@ -31942,7 +31942,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -32239,7 +32239,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -32470,7 +32470,7 @@ { "target": { "id": "JavaScript and TypeScript/TypeScript", - "index": 68, + "index": 67, "toolComponent": { "name": "QDPHP" } @@ -32635,7 +32635,7 @@ { "target": { "id": "JavaScript and TypeScript/Control flow issues", - "index": 50, + "index": 49, "toolComponent": { "name": "QDPHP" } @@ -34399,7 +34399,7 @@ { "target": { "id": "CSS/Probable bugs", - "index": 67, + "index": 68, "toolComponent": { "name": "QDPHP" } @@ -34663,7 +34663,7 @@ { "target": { "id": "CSS/Probable bugs", - "index": 67, + "index": 68, "toolComponent": { "name": "QDPHP" } @@ -35026,7 +35026,7 @@ { "target": { "id": "CSS/Probable bugs", - "index": 67, + "index": 68, "toolComponent": { "name": "QDPHP" } @@ -36487,7 +36487,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 90, + "index": 89, "toolComponent": { "name": "QDPHP" } @@ -37132,7 +37132,7 @@ { "target": { "id": "PHP/Quality tools", - "index": 90, + "index": 89, "toolComponent": { "name": "QDPHP" } @@ -37200,9 +37200,9 @@ }, "invocations": [ { - "startTimeUtc": "2024-03-05T10:01:08.065961559Z", + "startTimeUtc": "2024-03-06T14:24:47.108468511Z", "exitCode": 255, - "exitCodeDescription": "Failure condition triggered:\n- Detected 1 problem across all severities, fail threshold: 0", + "exitCodeDescription": "Failure condition triggered:\n- Detected 2 problems across all severities, fail threshold: 0", "executionSuccessful": true } ], @@ -37210,17 +37210,299 @@ "versionControlProvenance": [ { "repositoryUri": "https://github.com/pimcore/studio-api-bundle.git", - "revisionId": "32492cf241accc050406b001fbcf6a6170f2d94e", - "branch": "5-Authentication-Authorization", + "revisionId": "d44e6fe87239160c64004cbe3387f1b4779cf343", + "branch": "0x-First-Prototype", "properties": { "repoUrl": "https://github.com/pimcore/studio-api-bundle.git", - "lastAuthorName": "Matthias Schuhmayer", + "lastAuthorName": "mattamon", "vcsType": "Git", - "lastAuthorEmail": "38959016+mattamon@users.noreply.github.com" + "lastAuthorEmail": "matthias.schuhmayer@pimcore.com" } } ], "results": [ + { + "ruleId": "DuplicatedCode", + "kind": "fail", + "level": "note", + "message": { + "text": "Duplicated code", + "markdown": "Duplicated code" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Service/GenericData/V1/Hydrator/Asset/ArchiveHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1274, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1262, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Service/GenericData/V1/Hydrator/Asset/AudioHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1258, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1246, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Service/GenericData/V1/Hydrator/Asset/FolderHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1266, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1254, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Service/GenericData/V1/Hydrator/Asset/TextHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1250, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1238, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Service/GenericData/V1/Hydrator/Asset/UnknownHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1274, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1262, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + }, + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Service/GenericData/V1/Hydrator/AssetHydrator.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 36, + "startColumn": 13, + "charOffset": 1247, + "charLength": 743, + "snippet": { + "text": "$this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 36, + "startColumn": 1, + "charOffset": 1235, + "charLength": 755, + "snippet": { + "text": " $this->iconService->getIconForAsset($item->getType(), $item->getMimeType()),\n $item->isHasChildren(),\n $item->getType(),\n $item->getKey(),\n $item->getMimeType(),\n $this->metaDataHydrator->hydrate($item->getMetaData()),\n $item->isHasWorkflowWithPermissions(),\n $item->getFullPath(),\n $item->getId(),\n $item->getParentId(),\n $item->getPath(),\n $item->getUserOwner(),\n $item->getUserModification(),\n $item->getLocked(),\n $item->isLocked(),\n $item->getCreationDate(),\n $item->getModificationDate(),\n $this->permissionsHydrator->hydrate($item->getPermissions())" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v1": "dcc32b630c06449e2de443a18a2dd4f6758a9dea5c44c772e6e32a79c54d29d1" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, + { + "ruleId": "EfferentObjectCouplingInspection", + "kind": "fail", + "level": "note", + "message": { + "text": "[EA] High efferent coupling (28).", + "markdown": "\\[EA\\] High efferent coupling (28)." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "src/Service/GenericData/V1/Hydrator/AssetHydratorService.php", + "uriBaseId": "SRCROOT" + }, + "region": { + "startLine": 46, + "startColumn": 22, + "charOffset": 2806, + "charLength": 20, + "snippet": { + "text": "AssetHydratorService" + }, + "sourceLanguage": "PHP" + }, + "contextRegion": { + "startLine": 44, + "startColumn": 1, + "charOffset": 2687, + "charLength": 215, + "snippet": { + "text": "use Pimcore\\Bundle\\StudioApiBundle\\Service\\GenericData\\V1\\Hydrator\\Asset\\VideoHydratorInterface;\n\nfinal readonly class AssetHydratorService implements AssetHydratorServiceInterface\n{\n public function __construct(" + }, + "sourceLanguage": "PHP" + } + }, + "logicalLocations": [ + { + "fullyQualifiedName": "project", + "kind": "module" + } + ] + } + ], + "partialFingerprints": { + "equalIndicator/v1": "10668b157fa72184354a3ce775dcbd0ba6554fe81c40f599cc120eacfbcc931d" + }, + "baselineState": "new", + "properties": { + "ideaSeverity": "WEAK WARNING", + "qodanaSeverity": "Moderate", + "tags": [ + "PHP" + ] + } + }, { "ruleId": "OnlyWritesOnParameterInspection", "kind": "fail", @@ -37237,9 +37519,9 @@ "uriBaseId": "SRCROOT" }, "region": { - "startLine": 36, + "startLine": 37, "startColumn": 9, - "charOffset": 1115, + "charOffset": 1116, "charLength": 36, "snippet": { "text": "$securitySchemes[self::ACCESS_TOKEN]" @@ -37247,9 +37529,9 @@ "sourceLanguage": "PHP" }, "contextRegion": { - "startLine": 34, + "startLine": 35, "startColumn": 1, - "charOffset": 1009, + "charOffset": 1010, "charLength": 220, "snippet": { "text": "\n $securitySchemes = $openApi->getComponents()->getSecuritySchemes() ?: new ArrayObject();\n $securitySchemes[self::ACCESS_TOKEN] = new SecurityScheme(\n type: 'http',\n scheme: 'bearer'," @@ -37266,9 +37548,9 @@ } ], "partialFingerprints": { - "equalIndicator/v1": "b4c36c3d7817a69d98dccaa8bf31580ec32e562373a6df81ed90f5e608c99848" + "equalIndicator/v1": "e5a5888e4d46630173f7a3d633577bcf5a128c81127af2be85baed1bb57efa32" }, - "baselineState": "new", + "baselineState": "unchanged", "properties": { "ideaSeverity": "WEAK WARNING", "qodanaSeverity": "Moderate", @@ -37279,10 +37561,10 @@ } ], "automationDetails": { - "id": "project/qodana/2024-03-05", - "guid": "2fb2413d-9a8a-42b8-b496-a97d50d5b809", + "id": "project/qodana/2024-03-06", + "guid": "8da1f312-bbe5-4efb-91a8-5929ccb22f55", "properties": { - "jobUrl": "https://github.com/pimcore/studio-api-bundle/actions/runs/8154336325" + "jobUrl": "https://github.com/pimcore/studio-api-bundle/actions/runs/8173608135" } }, "newlineSequences": [ @@ -37298,8 +37580,8 @@ "configProfile": "path", "deviceId": "200820300000000-f800-ac37-cd19-06b28a4a08d3", "qodanaNewResultSummary": { - "moderate": 1, - "total": 1 + "moderate": 2, + "total": 2 } } }